我需要使用一个设计很差的java应用程序,它在运行时记录大量信息。在标准使用情况下,它将每小时创建100 MB的日志。
我不需要历史日志,而且目前看来log旋转式实用程序跟不上它,因为它运行得不够频繁。应用程序是封闭的源,它将自己的日志旋转到36 at左右。
我的Linux发行版是RHEL7。
我想通过压缩和旋转原木来减少浪费的空间。
下面是我尝试的日志旋转文件:
# cat /etc/logrotate.d/cis_assessor
/usr/share/foreman-proxy/Ansible/CIS/audit/Assessor-CLI-4.0.2/logs/assessor-cli.log {
missingok
notifempty
compress
rotate 5
size 30M这个日志旋转作业需要捕获大小在30 be到36 be之间的日志才能实际生效,这可能只是10秒的时间。这就是为什么我要询问的手动路径压缩和删除文件没有日志旋转。
发布于 2019-02-12 01:55:23
由于应用程序已经将日志拆分为新文件,是否可以在目录中自动压缩新创建的文件?
是的,是这样的。只需将新创建的文件作为目标,就可以监视目录中的新文件(喜欢entr)。
因此,您将创建如下日志旋转配置(/etc/logrotate.d/newlogrotateconf)
/usr/share/foreman-proxy/Ansible/CIS/audit/Assessor-CLI-4.0.2/logs/assessor-cli.log {
missingok
notifempty
compress
rotate 5
}然后在目录上的一个循环中运行entr,将logrotate绑定到inotify/epoll,
echo -n /usr/share/foreman-proxy/Ansible/CIS/audit/Assessor-CLI-4.0.2/logs/
| ./entr -dnc logrotate --force /etc/logrotate.d/newlogrotateconfhttps://unix.stackexchange.com/questions/500076
复制相似问题