もともと小さなDisk容量が圧迫され、一部のサービスがダウンしたのでその対策。
※この方法の欠点:「元ファイルコピー」 ~ 「元ファイルの中身の消去」の間に発生したログは記録されない
ディスク・ドライブの使用量を確認
# df -h
どのフォルダが多いか特定する
# du -h /
ある程度見当がついたら、
# du -h “ディレクトリパス” | sort -n | tail -10
# du -h “ディレクトリパス” | sort -n | more
などで絞り込んでいく。
これで調べるとやはりログ関係のある/var/logが大きそう。
ディレクトリが特定できたら、ファイルを特定していく
(-aオプションでファイルも表示)
# du -ha /var/log | sort -n | more
syslog関係が肥大化している。
一般的には、メールサーバであればmaillog、WEBなど外部公開されているものであれば、不正ログイン失敗を記録するbtmpあたりが、おそらく大きくなってるのではないかと思われる。
# vi /etc/logrotate.d/syslog
/var/log/maillog /var/log/btmp をログローテートさせる場合は以下のように修正
※10MBを超えたらローテートし、4世代分まで残す場合
————————————————————————–
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {# sharedscripts
postrotate
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true
/bin/kill -HUP cat /var/run/rsyslogd.pid 2> /dev/null
2> /dev/null || true
endscript
}
↓
/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron { sharedscripts
postrotate
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true
/bin/kill -HUP cat /var/run/rsyslogd.pid 2> /dev/null
2> /dev/null || true
endscript
}
/var/log/maillog /var/log/btmp {
rotate 4
size 10M
sharedscripts
postrotate /bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true /bin/kill -HUP cat /var/run/rsyslogd.pid 2> /dev/null
2> /dev/null || true
endscript
}
————————————————————————–
テスト実行
# logrotate -d /etc/logrotate.conf
ファイルが指定した世代数や要領でローテートされているのを確認
CRONへの登録確認
/etc/cron.daily内にlogrotateがあればOK
# ls -lat /etc/cron.daily