Red Hat Training

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

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