私のcrontabにこのディレクティブがあります:
* * * * * /var/www/github/mysite/bin/email email worker await --pid=/var/run/mysite-worker-email.pid >> /tmp/mysite-worker-email.log
すべてのログが/ tmp/mysite-worker-email.logに書き込まれていることがわかるように、そのファイルをローテーションできる方法はありますか?
マシンにroot権限があると仮定します。共有ホスティングを使用している場合、SFはとにかく間違ったサイトです。
/etc/logrotate.conf
および/etc/logrotate.d
が存在するかどうかを確認します。一致する場合は、継ぎ手名が付いたファイルを追加します。 site_email
から/etc/logrotate.d
に、次のようなコンテンツを含めます。
/tmp/mysite-worker-email.log {
compress
daily
missingok
rotate 7
}
これにより、ログファイルが毎日ローテーションされ、過去7日間の圧縮コピーが保持されます。 logrotate
にはさらに多くのオプションがあります。それらすべてについてはman logrotate.conf
を参照してください。
注:ログファイルを/tmp
に保持することはお勧めできません。特に/var/log/
がクリーンアップされたときにログファイルのコピーをさらに保持し、削除されたくない場合は、それらを/tmp
に入れます。