根据我系统上的时间戳判断,当 logrotate 由 cron 运行时,logrotate 会进行每日日志轮换。但是,如果我在此之前运行它,它不会旋转文件。logrotate 如何知道是否应该旋转它们,它是否保留历史记录或使用时间戳?
Mad*_*ter 37
我相信这是状态文件的内容,我的情况是/var/lib/logrotate.status. 每个文件有一行,它是上次轮换的日期;如果您在给定文件到期轮换的日期运行 logrotate,鉴于当前日期和文件中的日期之间的天数(每天 1 天,每周 7 天,等等),文件将被轮换。
logrotate 似乎并不关心它在一天中的什么时间运行;即使它通常在 2355 运行,如果您改为在 0130 运行它,它仍然会轮换标记为每天和昨天最后完成的文件;但是这样做后,它会将今天的日期放入状态文件(针对任何旋转文件),因此在 2355 处进行第二次运行将无济于事。
seb*_*ert 12
从 logrotate 手册页:
通常,logrotate 作为每日 cron 作业运行。它不会在一天内多次修改日志,除非该日志的标准基于日志的大小并且 logrotate 每天运行多次,或者除非使用 -f 或 -force 选项。