netcatを使ってファイルに書き込む方法は?そして、特定のサイズに成長して自分で覆い始めるように設定しますか?

netcatを使ってファイルに書き込む方法は?そして、特定のサイズに成長して自分で覆い始めるように設定しますか?

私は現在Zebraプリンタで印刷するプログラムを書いています。私のオフィスにはzebraプリンタがないので、nc -k -l -p 9100 | tee labels.txtプリンタの出力を見て正確さを確認するためにnetcatを実行しているLinux VMに印刷します。

残念ながら、このファイルは非常に大きくなり、仮想マシンの多くのスペースを占めていました。特に誰もファイルを消去するのを覚えていなかったからです。

を使用することは、teeファイルに書き込むのに良いオプションのようですが、私が望む方法では動作しません。label.txt上書きが開始される特定のサイズ(たとえば、20 MB)までだけ大きくしたいです。または、label.txtに名前を変更してlabel.txt.1label.txtを大きくすることを許可してから上書きすることもできますlabel.txt.1

netcat/ do thisを使用する方法はありますかtee?それとも別のプログラムを調べる必要がありますか?

答え1

netcatteeあなたの質問に答えると、これを達成する機能はありません。

毎分実行してサイズを確認しlabel.txt、20MBに達したら、最初の10MBをクリアするcronジョブを作成することもできます。

答え2

必要な結果を得るには、いくつかの手順を実行する必要があります。

まず、nc -k -l -p 9100 | tee labels.txtスクリプトを挿入してSIGHUPコマンドを再起動するハンドラを追加する必要があります。

logrotate次に、循環ログを設定する必要があります。

関連情報