我需要设置 logrotate 来轮换服务器上运行的应用程序的日志文件。我需要文件名中的日期。
我设置了 dateext 和 dateformat 以在日期中添加 - 。结果文件名为:whatever.csv_2012-03-03
我希望时间戳成为文件名的一部分,以确保扩展名的安全;不管_2012-03-03.csv。
您应该能够将扩展分开,例如whatever.2012-03-03.csv
,使用以下配置:
whatever.csv {
dateext
dateformat .%Y-%m-%d
extension .csv
...
}
注意dateext
是故意为空的。
要在 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
}
这很简单并且工作正常。