gwe*_*ang 12 logrotate date-format
logringate我比较新.当配置到属性"dateformat"时,似乎logrotate不支持strftime"%H".这是配置:
{
daily
rotate 2
size 3M
missingok
notifempty
dateext
dateformat -%Y%m%d_%H:%M:%S
...
}
Run Code Online (Sandbox Code Playgroud)
旋转的文件格式看起来像:uwsgi_dev.log-20150630_%H:%M:%S,但我想要精确的"小时分和秒".
谢谢
版本3.9.0中添加了对%H的支持.在早期版本中,logrotate不支持strftime"%H:
dateformat format_string:使用类似于strftime(3)函数的表示法指定dateext的扩展名.仅允许%Y%m%d和%s说明符.
从logrotate手册页http://linux.die.net/man/8/logrotate
但是,您可以%s在dateformat字符串中使用,该字符串是1970-01-01以来的秒数.你可以设置dateformat -%Y%m%d-%s.每次旋转日志时都会生成唯一的文件名,因此您可以每天多次旋转文件.不幸的是,该%s部分不易阅读,但您可以轻松地将其转换回可读日期perl -e "print scalar(localtime(1451214849))".
在某些系统上,date程序允许使用date -d @1451214849(例如GNU date)轻松进行此类转换.在大多数系统(包括例如Solaris date)上,您可能会遇到类似的语法date -d "1970-01-01 + 1451214849 sec".请注意,Busybox date仅支持@技巧,但不支持第二个示例的复杂表达式.