logrotateについて

logrotateはログファイルの管理を効率化するためのツールです。
色々オプションなどをまとめていきます。

ファイル構成

/etc/logrotate.conf

下記がデフォルトの設定となっています。グローバルなデフォルト設定が記述されています。
「include /etc/logrotate.d」となっているのは、下位ディレクトリの「/etc/logrotate.d/」配下も含んで読み込むということです。

[root@localhost ~]# cat /etc/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

# use date as a suffix of the rotated file
dateext

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

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

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

# system-specific logs may be also be configured here.
[root@localhost ~]#

/etc/logrotate.confと/etc/logrotate.d配下どちらが優先??

/etc/logrotate.d/ の設定が個別のログファイルに対してより具体的な設定を行っている場合、その設定が優先されます。
一方、/etc/logrotate.conf は全体的なデフォルト設定を行う場所であり、特定のアプリケーションやサービスの個別設定がない場合はこの設定が適用されます。

/var/lib/logrotate/logrotate.status

最後にローテーションした日時を管理するファイルのこと

各ディレクティブの設定値

ディレクティブ説明
rotate <ローテート数>ログの世代数を指定します。古いログは削除されます
daily/weekly/monthly/yearlyログのローテーション頻度を設定します。
sizeログのサイズが指定値を超えた場合にローテーションを行います(例: 100M, 1G)
compressローテーション後のログを圧縮します(デフォルトで gzip)
delaycompress圧縮を次回のローテーションまで遅らせます(トラブルシューティング時に便利)。
missingokログファイルが存在しない場合でもエラーを出さずスキップします。
notifempty空のログファイルをローテーションしないようにします。
ifempty空のログファイルでもローテーションする
create <パーミッション ユーザー グループ>ローテーション後に空のログファイルを新規作成する
copytruncateログファイルをコピーし、元ファイルを空にする。ログファイルをオープンしたままローテーションしたい場合に使用する