logrotate 将原始文件重命名为 mylog.log.1 但随后不使用 mylog.log

logrotate 将原始文件重命名为 mylog.log.1 但随后不使用 mylog.log

我在 Ubuntu 14.04 上遇到 logrotate 问题。没有正确旋转我的日志文件。当前它正在将 mylog.log 重命名为 mylog.log.1,但随后它会继续使用文件 mylog.log.1 来记录消息,而不是使用 mylog.log。

在什么条件下会发生这种情况?

答案1

重新启动或 HUP 写入此日志文件的守护程序。请参阅logrotate 联机帮助页中的postrotateprerotate

答案2

postrotate您应该按照 Ipor 的回答使用该指令重新启动/HUP 程序。

技术原因的简短解释:您的程序锁定到 的 inode mylog.log,并且当 logrotate 移动日志文件时,您的程序仍在写入同一 inode。 inode 不包含也不关心文件名。因此,通过重新启动程序,它不再使用旧的索引节点,并将开始记录到新文件。

相关内容