我需要使用时间和日期作为旋转日志的扩展。现在我使用的是 dateext
但问题是,我不能在同一天实现轮换一次以上,我必须按小时进行轮换。
这是我创建的logorotate配置。
/someDirectory/logs/*.log {
nocompress
notifempty
copytruncate
size 100M
dateext
olddir someDirectory/logs/archived
rotate 10
}
我缺少什么?
你可以使用postrotate脚本,比如。
someDirectory/logs/*.log /someDirectory/logs/*.log {
nocompress
notifempty
copytruncate
size 100M
dateext
olddir someDirectory/logs/archived
rotate 10
sharedscripts
postrotate
day=$(date +%Y%m%d)
daytime=$(date +%Y%m%d-%H:%M:%S)
mv somelog-$day /var/log/somelog-$daytime
endscript
}
阅读 logrotate数据格式似乎不支持%H:%M:%S。 logrotate 对 %H:%M:%S 的支持已经到来(尽管在我最喜欢的 Linux 发行版上还没有)。
如果你的系统还不支持这种格式,你只需要一些额外的信息来区分每小时的存档文件,你可以使用
dateformat -%Y%m%d-%s
或按顺序编号的日志,待澄清在其他答案中如何使 somelog
一个变量。