文件大小超出限制后,Logrotate 不会旋转文件。

文件大小超出限制后,Logrotate 不会旋转文件。

来自 logrotate 手册页。

除非该日志的标准是基于日志的大小,否则它不会在一天内多次修改日志

根据手册页,如果配置基于日志大小,logrotate 应该旋转文件。但是,即使文件大小大于 100k,我的文件也没有得到旋转。

有人能指出问题是什么吗?

我的配置

/home/jetech/work/lampstack-5.3.9-0/apache2/logs/access_log  {
    copytruncate
    compress
#    dateext
    rotate 365
    size 100k
    olddir /home/jetech/work/lampstack-5.3.9-0/apache2/old_logs
    notifempty
    nomail
    missingok
}

答案1

您怎么知道文件没有被旋转?

在我拥有的 Debian 6 Linode 上,默认配置logrotate仅安排cron每天运行一次,而且是在非常奇怪的时间运行。如果每天只运行一次,那么自然每天只有一次机会查看配置、进行比较并执行所需的轮换。

那么,你确定你真的在运行 logrotate 吗?可能需要检查一下,/etc/cron*看看/etc/cron*/*logrotate 计划何时运行以及运行频率。

例如,如果logrotate脚本存在于中/etc/cron.daily,那么您可能需要将其移动到/etc/cron.hourly,或者,如果每小时运行一次不够好,则在中创建一个/etc/cron.d/包含以下内容的文件,logrotate每 10 分钟运行一次:

*/10  *  *  *  *   root    /usr/sbin/logrotate /etc/logrotate.conf

答案2

实际上logrotate是这样的,

  • 在配置中我们指定运行频率(日常的每小时每月
  • 有一个/etc/cron.xxx条目日志旋转执行。
  • 日志旋转通过运行定时任务

如果你提到日常的每天在指定的时间(/etc/crontab),crontab 进程将运行日志旋转进程进行轮换。因此,文件大小限制将不起作用,因为进程永远不会运行。

相关内容