我有一个非常繁忙的日志文件(我们称之为/var/log/service.log
),出于故障排除的原因,它也经常被搜索。它的输出几乎是连续的,而且是 24/7。它每天大概输出 1-2 GB,但我们需要全部。
由于fgrep
大型日志文件的速度不切实际,因此需要频繁轮换。我已logrotate
设置为在 中运行/etc/cron.hourly
,使用指令和左右hourly
的大小限制。512M
这按预期工作:文件从 旋转/var/log/service.log
到/var/log/service.log-20150810
或诸如此类。问题是,重命名只是对 inode/目录条目进行外观更改,因此现在rsyslogd
会继续写入/var/log/service.log-20150810
一段时间,而新创建的条目/var/log/service.log
则为空。在某个时候,rsyslogd
确实决定开始写入新的条目,但我不清楚这样做的韵律或原因。
无论如何,我需要某种方式来“启动”rsyslogd
它,告诉它开始/var/log/service.log
在日志轮换后写入新的、原始的日志。向它发送 SIGHUP 似乎不起作用。任何不涉及丢失大量日志条目(即重新启动rsyslogd
)的想法都将不胜感激!
(旁注:我知道logrotate
命名方案会导致/var/log/service.log.1
诸如此类的事情,所以,我有点困惑/var/log/service.log-20150810
。它rsyslogd
内部也会进行自己的旋转吗?这会有什么不利影响吗?)
提前谢谢了!