logrotate でポストグレスのログをローテートするには?

ショコラ
ショコラ

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

シチュエーション

ポストグレスのログをシスログ経由で出力することができた。次にログファイルを日毎で圧縮してローテートさせたい。

Scroll to Top