Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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) を参照してください。