tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

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 2

Logrotateを実行してみます。

"-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.conf

CRONの条件で無条件に実行させたい場合、"-f" を付加します。

"-f" を付けない場合、logrotateコマンドを実行させるだけであり、実際にローテートされるかどうかは、"logrotate.conf"の設定条件によります。


To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)