CentOS/RHEL 上的审计日志和消息文件不轮换

解决方案

杀死僵死的 cron 进程并重新启动 anacron 进程。
例如:

$ ps -ef|grep cron
root 17592 1 0 Mar11 ? 00:00:16 crond
root 132079 232781 0 Mar31 ? 00:00:00 /bin/bash /usr/bin/run-parts /etc/cron.daily
root 1320791 0 Mar31 ? 00:00:00 /usr/sbin/anacron -s
oracle 264332 233472 0 06:37 pts/6 00:00:00 grep cron
root 392965 132079 0 Mar31 ? 00:00:00 /bin/sh /etc/cron.daily/mlocate.cron
root 392966 132079 0 Mar31 ? 00:00:00 awk -v progname=/etc/cron.daily/mlocate.cron progname {????? print progname ":\n"????? progname="";???? }???? { print; }

它应该如下所示

$ ps -ef|grep cron
oracle 75374 61598 0 00:37 pts/2 00:00:00 grep cron
root 387494 1 0 Jul07 ? 00:00:00 crond

监控服务器一天,查看它是否会轮换日志。

$ egrep "messages|audit" /var/lib/logrotate.status
"/var/log/asmaudit.log" 2017-7-9
"/var/log/messages" 2017-7-9
"/var/log/audit.log" 2017-7-8
$ ls -ltr /var/log/audit*
$ ls -ltr /var/log/mess*
$ ls -ltr /var/log/asmau*
https://onitroad.com 更多教程

原因

cron.daily 作业被另一个 anacron 作业锁定。
我们可以在 ps 输出中看到 anacron 仍在运行并阻塞其他进程。

$ ps -ef|grep cron
root 17592 1 0 Mar11 ? 00:00:16 crond
root 132079 232781 0 Mar31 ? 00:00:00 /bin/bash /usr/bin/run-parts /etc/cron.daily
root 232781 1 0 Mar31 ? 00:00:00 /usr/sbin/anacron -s
oracle 264332 233472 0 06:37 pts/6 00:00:00 grep cron
root 392965 132079 0 Mar31 ? 00:00:00 /bin/sh /etc/cron.daily/mlocate.cron
root 392966 132079 0 Mar31 ? 00:00:00 awk -v progname=/etc/cron.daily/mlocate.cron progname {????? print progname ":\n"????? progname="";???? }???? { print; }

问题

Linux上的审核日志和消息文件未轮换。

/var/log/messages、/var/log/audit.log 和 /var/log/asmaudit.log 文件的轮换不会在操作系统级别发生。

$ ls -ltr /var/log/audit*

-rw------- 1 root root 6145628 Mar 27 03:07 audit.log.6.gz
-rw------- 1 root root 2979527 Mar 28 03:07 audit.log.5.gz
-rw------- 1 root root 3797834 Mar 29 03:07 audit.log.4.gz
-rw------- 1 root root 4283296 Mar 30 03:08 audit.log.3.gz    -》 20天没有日志轮换
-rw------- 1 root root 96190 Apr 20 11:20 audit.log.2.gz      -》 20天没有日志轮换
-rw------- 1 root root 387 Apr 22 12:16 audit.log.1.gz
-rw------- 1 root root 507157 Jan 3 10:26 audit.log
$ ls -ltr /var/log/mess*
-rw-r----- 1 root orarom 4324393 Mar 30 03:08 messages.4.gz
-rw-r----- 1 root orarom 5240535 Mar 31 03:08 messages.3.gz  -》 20天没有日志轮换
-rw-r----- 1 root orarom 96226018 Apr 20 11:20 messages.2.gz  -》 20天没有日志轮换
-rw-r----- 1 root orarom 10463366 Apr 22 12:16 messages.1.gz
-rw-r----- 1 root orarom 1555913366 Jan 3 10:26 messages
$ ls -ltr /var/log/asmau*
-rw------- 1 root root 16248312 Apr 22 12:16 asmaudit.log.2.gz
-rw------- 1 root root 74179752 Apr 22 12:16 asmaudit.log.1
-rw------- 1 root root 396961019 Jan 3 10:27 asmaudit.log
$ cat /var/lib/logrotate.status | grep mess
"/var/log/messages" 2017-4-22
日期:2020-09-17 00:12:58 来源:oir作者:oir