のmanページにはlogrotate
次のように書かれています:
It can be used when some program cannot be told to close its logfile
and thus might continue writing to the previous log file for some
time.
私はこれに混乱しています。ログファイルを閉じるようにプログラムに指示できない場合、プログラムはいつかではなく、永久に書き込みを続けます。圧縮が次の回転サイクルに延期される場合、プログラムは次の回転サイクルの後でもそのファイルへの書き込みを継続します。問題の解決をどのように延期しますか?
私の理解ではcopytruncate
、プログラムにログファイルを閉じるように指示できない場合に使用する必要があります。コピーの進行中に、ログファイルに書き込まれたデータの一部が失われることを認識しています。
私はcouchdbのlogrotateファイルを見ていましたが、両方copytruncate
とdelaycompress
オプションがありました。
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
delaycompress
いつそこにあるのかを使用しても意味がないようcopytruncate
です。私は何が欠けていますか?
copytruncate
、プログラムにログファイルを閉じるように指示する必要はありません。だから、それが指定する意味がないdelaycompress
と一緒にcopytruncate
?