[问题已处理]-logrotate的daily任务执行成功但日志没有切割

logrotate daily任务执行成功但日志没有切割

昨天修改了几台nginx的日志清理规则。加入了logroate,但是同样的规则 有些服务器进行了日志切割 有些服务器没有进行日志切割。

/etc/logrotate.d/nginx如下

/data/nginx_logs/*.log
{    #为nginx日志的存储目录,可以根据实际情况进行修改
    daily
    rotate 10
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
        /bin/kill -USR1 $(cat /data/soft/tengine-2.2.3/logs/nginx.pid  2>/dev/null) 2>/dev/null || :
    endscript
}

查看/var/log/cron 发现daily任务已经执行

但是现象是日志并没有进行切割。没有生成压缩包

直接执行logrotate -vf /etc/logrotate.d/nginx 却是没有问题的

那为什么daily执行了 但是没有切割呢。

查看logroate执行文件

/etc/cron.daily/logrotate

[问题已处理]-logrotate的daily任务执行成功但日志没有切割_第1张图片

查看/var/lib/logrotate/logrotate.status

[问题已处理]-logrotate的daily任务执行成功但日志没有切割_第2张图片

结论

logrotate自己会判断是否需要进行 日志切割。并不是每一次执行都会进行切割。如果需要定时每天切割,需要自己在crontab里执行logrotate -f

并且日志不是整点切的。这个配置是在/etc/anacrontab

这里写的很清楚START_HOURS_RANGE=3-22,就是在3点到22点之间选择一个时间执行任务

[问题已处理]-logrotate的daily任务执行成功但日志没有切割_第3张图片

你可能感兴趣的:(问题已处理)