私は現在Zebraプリンタで印刷するプログラムを書いています。私のオフィスにはzebraプリンタがないので、nc -k -l -p 9100 | tee labels.txt
プリンタの出力を見て正確さを確認するためにnetcatを実行しているLinux VMに印刷します。
残念ながら、このファイルは非常に大きくなり、仮想マシンの多くのスペースを占めていました。特に誰もファイルを消去するのを覚えていなかったからです。
を使用することは、tee
ファイルに書き込むのに良いオプションのようですが、私が望む方法では動作しません。label.txt
上書きが開始される特定のサイズ(たとえば、20 MB)までだけ大きくしたいです。または、label.txt
に名前を変更してlabel.txt.1
label.txtを大きくすることを許可してから上書きすることもできますlabel.txt.1
。
netcat
/ do thisを使用する方法はありますかtee
?それとも別のプログラムを調べる必要がありますか?
答え1
netcat
tee
あなたの質問に答えると、これを達成する機能はありません。
毎分実行してサイズを確認しlabel.txt
、20MBに達したら、最初の10MBをクリアするcronジョブを作成することもできます。
答え2
必要な結果を得るには、いくつかの手順を実行する必要があります。
まず、nc -k -l -p 9100 | tee labels.txt
スクリプトを挿入してSIGHUP
コマンドを再起動するハンドラを追加する必要があります。
logrotate
次に、循環ログを設定する必要があります。