根据我的系统上的时间戳,logrotate在cron运行logrotate时会每天进行日志轮转。 但是,如果我运行它比它不会旋转文件。 logrotate如何知道是否应该旋转它们,保存历史还是使用时间戳?
我相信这是状态文件的内容,这是我的情况是/var/lib/logrotate.status
。 每个文件都有一行,这是上次旋转的date; 如果您运行logrotate的date是给定的文件旋转到位,给定date和文件中的date之间的天数(每天1次,每周7次),文件将被旋转。
logrotate似乎不在乎它运行的时间, 即使它通常运行在2355,如果你要在0130运行它,它仍然会旋转标记每天和昨天最后完成的文件; 但是这样做会把今天的date放入状态文件(针对任何旋转的文件),所以在2355秒的第二次运行什么也不做。
从logrotate手册页:
通常情况下,logrotate是作为日常的cron作业运行的。 它不会在一天内多次修改日志,除非该日志的标准基于日志的大小,并且logrotate每天运行多次,或者除非使用了-f或-force选项。