logrotateのテスト方法

logrotateの設定を、

  • /etc/logrotate.conf
  • /etc/logrotate.d/に置かれたファイル

にした後に、意図したとおりにログローテーションするかをテストします。

logrotateは、実際はcrondによって、定められたタイミングで実行されるわけですが、今すぐに実行できないといけませんし、crondの設定を変更したくありません。
また、実際にはローテーションされないようにする必要もあります。

こういうときには、次のようにlogrotateコマンドを実行します。logrotate.confを指定すればlogrotate設定全体のテスト、dovecotなどの個別設定を指定すれば個別設定のテストを実行できます。

[root ~]# logrotate -dv /etc/logrotate.conf

[root ~]# logrotate -dv /etc/logrotate.d/dovecot

実行結果は、ローテーションする場合とローテーションしない場合の2通りを示しておきます。
なお、/etc/logrotate.d/dovecot の内容は次の通りです。

# dovecot SIGUSR1: Re-opens the log files.
/var/log/dovecot.log {
missingok
notifempty
size 50k
postrotate
/bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
endscript
}

サイズが設定値に達していないので、ローテーションしない場合
[root ~]# logrotate -dv /etc/logrotate.d/dovecot
reading config file /etc/logrotate.d/dovecot
reading config info for /var/log/dovecot.log

Handling 1 logs

rotating pattern: /var/log/dovecot.log  51200 bytes (no old logs will be kept)
empty log files are not rotated, old logs are removed
considering log /var/log/dovecot.log
  log does not need rotating
not running postrotate script, since no logs were rotated
サイズが設定値に達して、ローテーションする場合
reading config file /etc/logrotate.d/dovecot
reading config info for /var/log/dovecot.log

Handling 1 logs

rotating pattern: /var/log/dovecot.log  51200 bytes (no old logs will be kept)
empty log files are not rotated, old logs are removed
considering log /var/log/dovecot.log
  log needs rotating
rotating log /var/log/dovecot.log, log->rotateCount is 0
renaming /var/log/dovecot.log.1 to /var/log/dovecot.log.2 (rotatecount 1, logstart 1, i 1),
renaming /var/log/dovecot.log.0 to /var/log/dovecot.log.1 (rotatecount 1, logstart 1, i 0),
renaming /var/log/dovecot.log to /var/log/dovecot.log.1
disposeName will be /var/log/dovecot.log.1
running postrotate script
running script with arg /var/log/dovecot.log: "
    /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
"
removing old log /var/log/dovecot.log.1

Comments are closed.