25.3.5. ログローテーション
以下は、
/etc/logrotate.conf
設定ファイルのサンプルです。
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # uncomment this if you want your log files compressed compress
上記の設定ファイル内のすべての行は、すべてのログファイルに適用されるグローバルオプションを定義しています。この例では、ログファイルは週ごとにローテーションされ、ローテーションされたログファイルは 4 週間保持され、ローテーションされるログファイルはすべて gzip により
.gz
形式に圧縮されます。ハッシュマーク (#) で始まる行はすべてコメントで、これは処理されません。
特定のログファイル用に設定オプションを定義して、それをグローバルオプションの下に置くこともできます。ただし、
/etc/logrotate.d/
ディレクトリーに、特定ログファイル用の個別の設定ファイルを作成し、そこに設定オプションを定義することが推奨されます。
/etc/logrotate.d/
ディレクトリーに設定ファイルが保存されている例を以下に示します。
/var/log/messages { rotate 5 weekly postrotate /usr/bin/killall -HUP syslogd endscript }
このファイル内の設定オプションは、
/var/log/messages
ログファイル専用の特有なものです。ここで指定された設定は、可能な場合はグローバルオプションを上書きします。そのため、ローテートされた /var/log/messages
ログファイルは、グローバルオプションで定義された 4 週間ではなく、5 週間保管されます。
以下は、logrotate 設定ファイル内で指定できるディレクティブの一覧です。
weekly
- ログファイルの週ごとのローテーションを指定します。同様なディレクティブには以下のものがあります。daily
monthly
yearly
compress
- ローテートしたログファイルの圧縮を有効にします。同様なディレクティブには以下のものがあります。nocompress
compresscmd
- 圧縮に使用するコマンドを指定します。uncompresscmd
compressext
- 圧縮に使用する拡張子を指定します。compressoptions
- 使用する圧縮プログラムに渡すオプションを指定します。delaycompress
- ログファイルの圧縮を次回のログファイルのローテーションまで延期します。
rotate INTEGER
- ログファイルが削除される、または特定のアドレスに送信されるまでにログファイルがローテーションされる回数を指定します。0
の値を指定すると、ローテーションではなく古いログファイルが削除されます。mail ADDRESS
- このオプションは、rotate
ディレクティブで定義された回数だけローテーションされたログファイルを特定のアドレスへメール送信できるようにします。同様なディレクティブには以下のものがあります。nomail
mailfirst
- 間もなく期限切れになるログファイルではなく、ローテートされたログファイルがメール送信されるよう指定します。maillast
- 交代されたばかりのログファイルではなく、間もなく期限切れになるログファイルがメール送信されるよう指定します。mail
が有効な場合は、これがデフォルトのオプションです。
ディレクティブおよび設定オプションの一覧は、man ページの
logrotate(5)
を参照してください。