Fetchmail や Procmail がログを出力するが、放置しておくと巨大なファイルになってしまうので、Ubuntu に標準で入っている Logrotate を使って、ログファイルのローテートと削除を行う。今回ローテートするログファイルは、ユーザ権限で作成されているファイルなので、ユーザ権限で Logrotate を起動する。
システムログのローテート設定をコピーして作成。
~/log/logrotate.conf あたりに作成。
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /home/foobar/log/logrotate.d
logrotate.d ディレクトリを作成する。
mkcdir ~/log/logrotate.d/
logrotate.d ディレクトリの中に、各デーモンごとのログローテート設定をファイルに記述して保存する。
Fetchmail のログの場合はこんな感じで。
~/log/logrotate.d/fetchmail
/home/foobar/log/fetchmail.log { daily rotate 30 compress delaycompress notifempty create 640 foobar users }
ローテートしたいログファイル分設定ファイルを作成して、logrotate.d に格納しておく。
Logrotate を起動するスクリプト。このスクリプトを cron で実行する。
#!/bin/sh test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate --state /home/foobar/log/logrotate.status /home/foobar/log/logrotate.conf
$ crontab -e
以下の行を追加
<code> # Loglotate 0 0 * * * /home/foobar/log/logrotate.sh > /dev/null 2>&1 <code>