如何使用logrotate在文件名中插入日期

时间:2012-03-04 14:42:37

标签: linux logrotate

我需要设置logrotate来从服务器上运行的应用程序中旋转日志文件。 我需要文件名中的日期。

我设置dateext和dateformat以在日期中添加 - 。 结果文件名是:whatever.csv_2012-03-03

我希望时间戳成为文件名的一部分,以保证扩展的安全; Whatever_2012-03-03.csv。

2 个答案:

答案 0 :(得分:61)

你应该可以将扩展分开,例如whatever.2012-03-03.csv,具有以下配置:

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

请注意dateext故意为空。

答案 1 :(得分:23)

要在Linux下旋转文件时在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
}

这很简单,工作正常。