FreeBSDでLogrotateを使う
Modified: 16 February 2004
PackegesのCDかDVDをセットして、"/stand/sysinstall"を起動します。
"Main Menu" から、"Configure" を選択します。
"FreeBSD Configuration Menu" では、"Packages" を選択します。
"Choose Installation Media" では、"CD/DVD" を選択します。
しばらく待ちます。
"Package Selection" では、"sysutils" を選択します。
"logrotate-3.5.2" を選択し、インストールします。
"loglotate.conf"の設定
設定ファイルのサンプルから、"loglotate.conf" を作成します。
# cd /usr/local/etc
# cp logrotate.conf.sample logrotate.conf内容を変更します。
どういうサイクルで実行するか?
:
#daily
# weekly
monthly <------------ 毎月実行
:前回の実行日付は、"/var/lib/logrotate.status" に記録されています。このファイルの内容日付が起点となります。このファイルを変更すれば、起点を設定可能です。
どこまで残すか
ローテートして残すログの数を指定します。"0"の場合、古いログは残されず削除されます。
:
rotate 120 <--------- 120回まで残る(monthlyなら120ヶ月=10年分残る)
:
私の設定
内容を変更します。
# see "man logrotate" for details
# rotate log files weekly
monthly
# keep 4 weeks worth of backlogs
rotate 120
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
# compress
# RPM packages drop log rotation information into this directory
include /usr/local/etc/logrotate.d
/var/log/lastlog {
monthly
rotate 1
}
# system-specific logs may be configured here
"syslog"のファイルをLogrotateの対象とする場合の設定
# cd /usr/local/etc/logrotate.d
# cp syslog.sample syslog以下の内容です。特に変更はいりません。
/var/cron/log { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/amd.log { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/kerberos.log { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/lpd-errs { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/maillog { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/sendmail.st { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/messages { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/slip.log { postrotate /usr/bin/killall -HUP syslogd endscript } /var/log/ppp.log { postrotate /usr/bin/killall -HUP syslogd endscript }
状態を記録するファイルを作成します。
# cd /var/lib/ # vi logrotate.status"logrotate.status" には、以下の内容を設定します。
/logrotate state -- version 2Logrotateを実行してみます。
"-f" オプションをつけると無条件に実行されますが、つけない場合、設定条件が満たされない限り実行されません。したがって、テストする場合、"-f" オプションをつけて実行します。
# /usr/local/sbin/logrotate -f /usr/local/etc/logrotate.conf"Logrotate"は、cron で定期的に実行させるものです。
# crontab -e毎月1日の午前0時に実行するように設定しました。
0 0 1 * * /usr/local/sbin/logrotate -f /usr/local/etc/logrotate.confCRONの条件で無条件に実行させたい場合、"-f" を付加します。
"-f" を付けない場合、logrotateコマンドを実行させるだけであり、実際にローテートされるかどうかは、"logrotate.conf"の設定条件によります。