web-dev-qa-db-ja.com

logrotateを使用してファイル名に日付を挿入する方法

サーバーで実行中のアプリケーションからログファイルをローテーションするようにlogrotateを設定する必要があります。ファイル名の中に日付が必要です。

Dateextとdateformatを設定して、日付に-を追加します。結果のファイル名は次のとおりです。whatever.csv_2012-03-03

タイムスタンプを拡張子を安全に保つファイル名の一部にしたいと思います。 Whatever_2012-03-03.csv。

29
Bernard Sfez

Linuxでファイルをローテーションしながらファイルのファイル名に(拡張子ではなく)日付を挿入するには、次のように使用するのが適切です。

# Daily rotation
    daily

# We keep original file live
    copytruncate

# Rotation is 1 so we have always .1 as extension
    rotate 1

# If file is missing keep working
    missingok

    sharedscripts
    postrotate
            day=$(date +%Y-%m-%d)
            mv blabla.csv.1 /var/www/gamelogs/dir/blabla$day.csv
    endscript
}

これは簡単で、うまく機能します。

23
Bernard Sfez

拡張機能を区別できるようにする必要があります。 whatever.2012-03-03.csv、次の構成:

whatever.csv {
  dateext
  dateformat .%Y-%m-%d
  extension .csv
  ...
}

dateextは意図的に空であることに注意してください。

61
Stéphane