stdout ログファイルをロールオーバーする (ash)

stdout ログファイルをロールオーバーする (ash)

たとえば、シェルとして /bin/ash を使用して、特定のプログラムの stdout を記録するログ ファイルを、500 KB に達したときにロールオーバーするように作成するにはどうすればよいでしょうか。

ヒントや提案があればよろしくお願いします!

答え1

これはあなたが求めていることをほぼ実現します: http://stromberg.dnsalias.org/~strombrg/pypty/

これはPythonでのscreen(1)の再実装です。

ファイル サイズに基づいてファイルを変更するのではなく、代わりに、「日付付きファイル」の -d を指定して呼び出されると、毎日新しいファイルが作成されます。

本当に時間ではなくサイズに基づいて必要な場合は、必要に応じて変更できる可能性があります。

おそらく、dd bs=1024k count=1 をラップした小さな bash スクリプトを実行して、実際のサイズに基づいた新しいファイルを作成することもできます。私はかつて、データを (ほとんど) 固定サイズのフロッピー ディスクまたはテープ (一部のテープはドライブ内で圧縮されるため、常に同じバイト数を保存できるとは限りません) にバックアップするプログラムでこれを行いました。

関連情報