linux日志不循环问题诊断

有一台Linux虚拟机的messages日志文件自2023年7月下旬开始没有按周为周期重新生成新的日志,一直累积在同一个messages文件中,如下所示:

[root@ logrotate.d]# ls -l /var/log|grep me
-rw-r--r--  1 root         root       107170 Nov 15 11:01 dmesg
-rw-r--r--  1 root         root       107046 Nov 15 10:43 dmesg.old
-rw-------  1 root         root   3189979854 Nov 15 12:58 messages
-rw-------  1 root         root    114859853 Jun 25 03:19 messages-20230625
-rw-------  1 root         root    113785976 Jul  2 03:47 messages-20230702
-rw-------  1 root         root    124481527 Jul  9 03:16 messages-20230709
-rw-------  1 root         root    124152056 Jul 16 03:09 messages-20230716

查看日志的循环配置信息,都是正常的默认配置。

# more  /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

使用logrotate命令的诊断选项-d对日志进行诊断,发现syslog配置的文件属主被更改,正常是root。

[root@ logrotate.d]#  logrotate -d /etc/logrotate.d/syslog
Ignoring /etc/logrotate.d/syslog because the file owner is wrong (should be root).
Allocating hash table for state file, size 15360 B

Handling 0 logs
[[email protected]]# ls -l /etc/logrotate.d/syslog
-rw-r--r--. 1 remoter 1001 224 Apr 11  2018 /etc/logrotate.d/syslog

更改syslog配置文件的属主为root,问题解决。



参考:How to debug logrotate warnings or errors when logrotate is not running correctly

你可能感兴趣的:(Linux,linux,运维,服务器)