我在 Ubuntu 14.04 上遇到 logrotate 问题。没有正确旋转我的日志文件。当前它正在将 mylog.log 重命名为 mylog.log.1,但随后它会继续使用文件 mylog.log.1 来记录消息,而不是使用 mylog.log。
在什么条件下会发生这种情况?
答案1
重新启动或 HUP 写入此日志文件的守护程序。请参阅logrotate 联机帮助页中的postrotate
和prerotate
。
答案2
postrotate
您应该按照 Ipor 的回答使用该指令重新启动/HUP 程序。
技术原因的简短解释:您的程序锁定到 的 inode mylog.log
,并且当 logrotate 移动日志文件时,您的程序仍在写入同一 inode。 inode 不包含也不关心文件名。因此,通过重新启动程序,它不再使用旧的索引节点,并将开始记录到新文件。