Tho*_*mas 15 linux compression shell logging logrotate
我有一个应用程序每天生成一个非常重的大日志文件(每天约800MB),因此我需要压缩它们但由于压缩需要时间,我希望logrotate在重新加载/向应用程序发送HUP信号后压缩文件.
/var/log/myapp.log {
rotate 7
size 500M
compress
weekly
postrotate
/bin/kill -HUP `cat /var/run/myapp.pid 2>/dev/null` 2>/dev/null || true
endscript
}
Run Code Online (Sandbox Code Playgroud)
压缩是否已经发生在postrotate之后(这会违反直觉)?如果没有,任何人都可以告诉我,如果没有额外的命令脚本(一个选项或一些技巧)可以做到这一点吗?
谢谢托马斯
小智 42
这里添加此信息,以防其他人在实际搜索时遇到想要在压缩完成后运行文件的方法时遇到此线程的情况.
如上所述使用postrotate/endscript对此没有好处.
相反,你可以使用lastaction/endscript,它完美地完成了这项工作.
小智 21
该postrotate脚本始终运行之前,即使压缩sharedscripts生效.因此,Hasturkun对第一个答案的额外回应是不正确的.当sharedscripts生效的前执行的唯一压缩postrotate是原来的未压缩日志遗落因为周围delaycompress.对于当前日志,在运行postrotate脚本后始终执行压缩.
Has*_*kun 15
在postrotate不压缩之前运行的脚本发生:从该名男子页日志轮播
配置文件的下一部分定义了如何处理日志文件/ var/log/messages.在删除之前,日志将经历五周轮换.在旋转日志文件之后(但在压缩旧版本的日志之前),将执行命令/ sbin/killall -HUP syslogd.
在任何情况下,您都可以使用该delaycompress选项将压缩延迟到下一次旋转.
| 归档时间: |
|
| 查看次数: |
39223 次 |
| 最近记录: |