logrotateの設定をいくつか変えたので、用途、使用例、結果をメモ。test.tar.gzというファイルを対象に、設定した前後でのローテート結果比較を残しておく。

試した設定は以下の4つ。

  1. extention
  2. dateext
  3. dateformat
  4. nodetaext

extentoin

用途

ローテートさせる際に、識別子(番号、日付など)を拡張子の前につけたい。というときにextentionを使用する。

使用例

extentionの設定値として「.tar.gz」を指定した。

/var/log/test.tar.gz {
    missingok
    copy
    nocompress
    extension .tar.gz
    daily
    rotate 7
}

結果

「.tar.gz」の前に識別子「-yyyymmdd(デフォルト)」が付与された。

/var/log/test.tar.gz
↓
/var/log/test-20160811.tar.gz

備考:extensionなしだと

拡張子のあとにデフォルトの識別子「-yyyymmdd」が付与される。

/var/log/test.tar.gz
↓
/var/log/test.tar.gz-20160811

dateext & dateformat

用途

デフォルトでは「-yyyymmdd」形式の識別子がついてローテーションされるようになっている。この識別子の形式を変更したい場合にdateformatオプションを使う。ただし、使用できるフォーマットには制限がある。使えるのは「%Y, %m, %d, %s」の4つのみ。「%H, %M, %S」は使えない。

使用例

dateformatの設定値として「_%Y%m%d-%s」を設定。ハイフンをアンダースコアに変更。末尾に%s(unixtime)を追加。

/var/log/test.tar.gz {
    missingok
    copy
    nocompress
    extension .tar.gz
    daily
    rotate 7
    dateext
    dateformat _%Y%m%d-%s
}

結果

/var/log/test.tar.gz
↓
/var/log/test-20160811-14098282.tar.gz
}

nodateext

用途

識別子を「旧方式のただの数字」に変更するときはこのオプションを使用する。

使用例

/var/log/test.tar.gz {
    missingok
    copy
    nocompress
    extension .tar.gz
    nodateext
    daily
    rotate 7
}

結果 こうなる

ただの番号(ここでは「1」)が付与された。

/var/log/test.tar.gz
↓
/var/log/test.1.tar.gz