如何在 Logrotate 上使用日期和时间作为文件名的一部分?
How to use date and time as part of filename on Logrotate?
我需要使用时间和日期作为循环日志的扩展。现在我正在使用 dateext
,但问题是我不能在同一个 date/day 上实现多次轮换,我必须每小时轮换一次
这是我创建的 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 dateformat seems not supporting %H:%M:%S 对 %H:%M:%S 的 logrotate 支持已经到来(虽然还没有出现在我最喜欢的 Linux 发行版中)。
如果您的系统尚不支持此功能,您只需要一些额外信息来区分您可以使用的每小时存档文件
dateformat -%Y%m%d-%s
或按顺序编号的日志待在另一个答案中说明如何使 somelog
成为变量。
我需要使用时间和日期作为循环日志的扩展。现在我正在使用 dateext
,但问题是我不能在同一个 date/day 上实现多次轮换,我必须每小时轮换一次
这是我创建的 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 dateformat seems not supporting %H:%M:%S 对 %H:%M:%S 的 logrotate 支持已经到来(虽然还没有出现在我最喜欢的 Linux 发行版中)。
如果您的系统尚不支持此功能,您只需要一些额外信息来区分您可以使用的每小时存档文件
dateformat -%Y%m%d-%s
或按顺序编号的日志待在另一个答案中说明如何使 somelog
成为变量。