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

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

我设置了dateext和dateformat来添加一个 – 在date。 结果文件名是:whatever.csv_2012-03-03

我想时间戳是文件名的一部分保持安全的扩展; Whatever_2012-03-03.csv。

你应该能够保持扩展,例如whatever.2012-03-03.csv ,具有以下配置:

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

请注意dateext故意为空。

要在文件的文件名(而不是扩展名)中插入日期,同时旋转文件,则使用以下命令是正确的:

 # 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 } 

这很简单,工作正常。