なぜcreateとcopytruncateを一緒に使用するのですか?

なぜcreateとcopytruncateを一緒に使用するのですか?

オタク物これには例がありますlogrotatecopytruncateソースログファイルがコピーされ、切り捨てられます。

それで、なぜ私たちはそれを使うのですかcreate?元のログファイルは削除されませんでした。

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

もう一つの質問はそれが何のために使われますかmaxage 100?このrotate 4コマンドは、4サイクル後に古いログファイルを削除します。

答え1

これはおそらくこのチュートリアルの一例でのみ発見されたバグです。他のすべての例にはcopytruncateこのオプションはありませんcreate。返品logrotate マニュアルページ指摘実際には無視されます:

copytruncate

古いログファイルを移動して新しいログファイルを生成することを選択するのではなく、コピーを作成したら、元のログファイルをゼロサイズに切り捨てます。一部のプログラムでログファイルを閉じるように指示できないため、古いログファイルに永続的に書き込む(追加)できる場合に使用できます。ファイルのコピーとトリミングの間の時間間隔は非常に短いため、一部のロギングデータが失われる可能性があります。このオプションを使用すると、古いログファイルはそのまま残り、作成オプションは適用されません。


たとえば、maxage複数の回転期間(日/週/月)で空になる可能性があるログファイルに役立ちます。以前の回転ファイルを使用している場合notifempty

関連情報