ショコラ
logrotate でポストグレスのログをローテートするには?
設定ファイルを用意しました。これを /etc/logrotate.d/ に入れてキメマス。
ステータスファイルに前回の実行日時が保存されています。
もっさん先輩
CentOS7
CentOS7 の設定スファイル
/var/log/postgres.log
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
daily
compress
rotate 7
}
CentOS7 のステータスファイル(前回の実行日時を保存)
/var/lib/logrotate.status
Ubuntu 20
Ubuntu20 の設定スファイル
/var/log/postgres.log
{
missingok
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
daily
compress
rotate 7
}
Ubuntu 20 のステータスファイル(前回の実行日時を保存)
/var/lib/logrotate/status
ログローテートの操作
①logrotate -fv はログローテートを今すぐ実行します。
logrotate -fv /etc/logrotate.d/postgres
②logrotate -d はデバッグモード(ローテートは実行されません)で実行結果を表示します。
logrotate -d /etc/logrotate.d/postgres
③logrotate -s オプションでステータスファイルを指定することができます。
logrotate -d /etc/logrotate.d/postgres -s logrotate.status
シチュエーション
ポストグレスのログをシスログ経由で出力することができた。次にログファイルを日毎で圧縮してローテートさせたい。