nginx の logrotate 設定ファイル「/etc/logrotate.d/nginx 」
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
/etc/logrotate.d/nginx の各行の意味
- /var/log/nginx/*.log {
「/var/log/nginx/」ディレクトリの、ファイル名が「.log」で終わるファイルを対象とする
- daily
日ごとにログファイルを置き換える。
- missingok
ログファイルがなければエラーメッセージを出力しない。
- rotate 52
ログを 52 世代分残す。
- compress
ログを圧縮する。
- delaycompress
ローテートの 1 世代目は圧縮しない
- notifempty
元のログファイルが空なら、ローテーションしない。
- create 640 nginx adm
ローテーション実行後、空の新規ログファイルを属性を指定(パーミッション 640 ユーザ nginx、グループ adm)して作成する。
- sharedscripts
複数指定したログファイルに対し、postrotate または prerotate で記述したコマンドを実行
- postrotate 〜 endscript
ローテーション終了後に postrotate から endscript までの処理を実行する。
- [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
馴染みがなくてわからないが、おそらく nginx を再起動するような感じ?