目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

logrotate.confファイルを読み解くメモ

Debian Lennyのlogrotateの設定ファイルを読み解く。自分メモ

SEE ALSO: man logrotate

/etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly # 毎週rotateするよ このあたりはグローバルな設定

# keep 4 weeks worth of backlogs
rotate 4 # 4世代分古いバージョンのログをとっておくよ

# create new (empty) log files after rotating old ones
create  # rotateした後、新しいログファイル作るよ

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d # /etc/logrotate.d以下のファイルも設定ファイルとして読み込むよ

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp { # ログファイル毎の設定
    missingok         # ログファイルがなくてもエラーを出さないよ
    monthly           # 月1でrotateするよ
    create 0664 root utmp # 新しくlogを作るときのオプション postrotateより前にファイルを作るよ
    rotate 1          # 1世代分古いバージョンのログをとっておくよ
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here

/etc/logrotate.d/rsyslog

/var/log/syslog
{
        rotate 7          # 7世代まで古いバージョンのログをとっておくよ
        daily             # 毎日rotateするよ
        missingok
        notifempty        # logファイルが空の時はrotateしないよ
        delaycompress     # 次のrotateの時にログ圧縮するよ。 => つまり、2回目のrotateの時に圧縮するってこと?
        compress          # 古いログはgzipで圧縮するよ
        postrotate        # rotate後に叩くコマンド
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts   # 普通はpostrotateとprerotateはlog毎に毎回走っちゃうんだけど、これを定義しとくと1回だけ走るよ
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}