====== 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}}