logrotate(ログ管理の変更)
もともと玄箱のOS:MontaVistaLinuxはNAS用にメルコ(現バッファロー)様がカスタマイズしたものです。
なので、サーバー用途にはいろいろ不都合な点があったりします。
たとえば、このログ管理方法。
純正の設定では「1日ごとにローテーションして、過去1日分のみ保存」という、
これまた男らしい設定になってます。
このままでは何かあったときにちょっと不都合なので、
保存期間やローテーションタイミングを変更していきます。
「MontaVistaLinux」
組み込み用のOSで内容的にはdebianっぽいLinuxです。
メルコがカスタマイズした(LinkStation用)のを急造仕様で玄箱用にしてあるらしいです。
まぁ、私がLinuxのディストリビュージョンのことを話すのはナンセンスってことで・・・m(_.._)m
やること一覧 ・logrotateについて ・logrotateの設定ファイルを編集:Stray Penguin - Linux Memo (logrotate) ・残骸整理
ログをローテーションするソフト(?)
基本的に単体では使われず、cronというスケジュール管理デーモンに呼び出されて初めて動作する。
なので、動作タイミングについてはcronの設定による。
ちなみに玄箱で有効になっているcronの動作タイミングは、
ということで、ログローテーションの管理は/etc/logrotate.dで行っている。
なので、その中の設定ファイルを弄る。
まぁ、参考サイトを参照して書き換えるだけですが・・・
弄る方針
httpd
┃/opt/apache2/logs/*_log {
┃ weekly
┃ rotate 4
┃ missingok
┃# notifempty
┃ sharedscripts
┃ copytruncate
┃ delaycompress
┃ olddir /opt/apache2/logs/old
┃ postrotate
┃ /etc/init.d/httpd restart
┃# EXT=`date +%Y%m%d`
┃# for f in $1;
┃# do mv $f.1 $f.$EXT;
┃# done
┃ endscript
┃}
proftpd
┃/opt/proftpd/var/*.log {
┃ weekly
┃ rotate 4
┃ missingok
┃# notifempty
┃ sharedscripts
┃ copytruncate
┃ delaycompress
┃ olddir /opt/proftpd/var/old
┃# postrotate
┃# /sbin/killall -s HUP syslogd
┃# endscript
┃}
samba
┃/var/log/samba/samba.log {
┃ notifempty
┃ missingok
┃ sharedscripts
┃ copytruncate
┃ postrotate
┃ /sbin/killall -s HUP smbd
┃ endscript
┃}
┃
┃/var/log/log.smbd /var/log/log.nmbd {
┃ rotate 7
┃ notifempty
┃ missingok
┃ delaycompress
┃ olddir /var/log/old
┃ sharedscripts
┃ copytruncate
┃ postrotate
┃ /sbin/killall -s HUP smbd
┃ /sbin/killall -s HUP nmbd
┃ endscript
┃}
syslog
┃/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron {
┃ rotate 7
┃ notifempty
┃ delaycompress
┃ olddir /var/log/old
┃ sharedscripts
┃ postrotate
┃ /sbin/killall -s HUP syslogd
┃ endscript
┃}
thttpd
┃/var/log/thttpd.log {
┃ rotate 7
┃ notifempty
┃ missingok
┃ delaycompress
┃ olddir /var/log/old
┃ postrotate
┃ /sbin/killall -s HUP thttpd
┃ endscript
┃}
weekly
┃/var/log/sshd.log /var/log/freshclam.log /var/log/auth.log /var/log/maillog {
┃ weekly
┃ rotate 4
┃ missingok
┃ notifempty
┃ sharedscripts
┃ copytruncate
┃ delaycompress
┃ olddir /var/log/old
┃ postrotate
┃ /sbin/killall -s HUP syslogd
┃ endscript
┃}
「弄る方針」
上記の設定だと過去ログは元の場所の下にoldというディレクトリを作って、そこにまとめている。
まがりなりにも取っていた過去ログ(1日分)も整理する。
[/var/log]/oldを作成
# cd [/var/log] # mkdir old過去ログを移動
# mv *.gz ./old/以上。
戻るなら押せ!