来自 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 进程将运行日志旋转进程进行轮换。因此,文件大小限制将不起作用,因为进程永远不会运行。