====== 39 💻logrotateのテスト ====== ログローテートのテストを行うのに、毎晩確認するのは手間がかかる。 シェルを直接叩くときは成功するのに、実際にログローテートすると失敗してたりする。(パスやパーミッションなど) そこでテストする方法をメモ ===== 確認 ===== /etc/cron.daily/logrotate を見ると、「/var/lib/logrotate/logrotate.status」のステートファイルを確認してローテート実行するようになっている。 # cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 ===== logrotate.status を修正===== この日付の部分を修正する。 例えば1日前とか、1週間前とかテストしたいログのローテートのスパンによって変える。 一部抜粋 # cat /var/lib/logrotate/logrotate.status logrotate state -- version 2 "/var/log/yum.log" 2021-3-23-9:20:30 "/var/log/maillog" 2021-3-23-9:20:30 "/var/log/secure" 2021-3-23-9:20:30 "/var/log/messages" 2021-3-23-9:20:30 ・ ・ ・ ===== cronで実行 ===== 実際に本番を想定してCronで実行する。 これは10:00に実行する例 0 10 * * * bash -x /etc/cron.daily/logrotate > /tmp/logrotate.log {{tag>logrotate}}