我有以下新的 logrotate 配置:
/var/log/nexus/nexus.log {
rotate 7
missingok
compress
delaycompress
copytruncate
daily
}
Run Code Online (Sandbox Code Playgroud)
当我运行时logrotate -d nexus,我得到以下信息:
reading config file nexus
reading config info for /var/log/nexus/nexus.log
Handling 1 logs
rotating pattern: /var/log/nexus/nexus.log after 1 days (7 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/nexus/nexus.log
log does not need rotating
Run Code Online (Sandbox Code Playgroud)
我的 /var/log/nexus/ 文件夹包含以下内容:
nexus.log
oldlogs.tar.gz
Run Code Online (Sandbox Code Playgroud)
为什么 LogRotate 不旋转 nexus.log 文件?我期待的是 nexus.log 文件会被截断,并且会创建一个新文件,比如 nexus.log-201106241000。
Eig*_*ony 73
最有可能的是,日志文件不到一天和/或在最后一天内已轮换,并且 logrotate 会记住历史记录。
如果你添加-f它会强制旋转,如果你真的想要(虽然不是 100% 确定它是如何与 交互的-d)。
您可以查看历史记录,位置取决于您的分布,但可能是/var/lib/logrotate/status. 该文件显示上次轮换日志的时间。
小智 68
第一次使用新的日志配置运行 logrotate 时,它不知道上次日志轮换是什么时候发生的,因此它只会写入一个状态行,/var/lib/logrotate/status表示今天运行的效果。
当它随后在第二天运行时,它会看到日志是一天前的,并按预期轮换它。如果您不想等待,请编辑 logrotate 的状态文件并将日志的状态日期回滚到前一天。
当您手动运行 logrotate 时,它将按预期工作
小智 5
有时,即使您手动运行 logrotate,如果您在同一天运行并且dateext默认值不包含 senconds(例如-%Y%m%d),这也不起作用。即使您修改 logrotate 的状态文件或使用 size 指令(例如size 200M),也不会。至少在 CentOS 6 上,logrotate 将无法旋转您的日志文件,因为它已经存在。
要解决此问题,您需要使用dateformat代替dateext,其值类似于:%Y%m%d%s。
有关man logrotate更多信息,请参阅。
| 归档时间: |
|
| 查看次数: |
72161 次 |
| 最近记录: |