解决syslog不向日志文件写日志的问题
最近修改了公司服务器的日志文件/etc/syslog.conf,结果发现其中的两台服务器的syslogd从此不再向任何日 志文件写日志了,用ps -ef|grep syslog,发现syslogd在运行中:
[root@host103 ~]# ps -ef|grep syslog
root 10058 6976 0 20:36 pts/1 00:00:00 man syslogd
root 12062 1 0 21:48 ? 00:00:00 syslogd -m 0
root 12315 11589 0 22:01 pts/4 00:00:00 grep syslog
[root@host103 ~]# service syslog status
syslogd (pid 12062) is running...
klogd (pid 12066) is running...
但所有日志文件大小为空,用logger test /var/log/messages ,然后打开/var/log/messages,发现前面的测试信息并未写入日志文件,思虑良久,终未找到答案.
后来,请同事帮忙查看,他将其它服务器上的/etc/syslog.conf 以及/etc/init.d/syslog copy到有故障的那台机 (这两台机的日志配置一模一样),然后重启syslog /etc/init.d/syslog restart ,结果问题解决了.
问题出在哪里呢?
我用diff比较/etc/syslog.conf (new) 与/etc/syslog.conf (old),未有任何差异,比较旧的/etc/init.d/syslog (old) and /etc/init.d/syslog (new),也未出现任何差异,结果我用以下命令,发现两个文件的日期不一样:
[root@host103 ~]# ll /etc/init.d/syslog*
-rwxr-xr-x 1 root root 1369 Aug 16 21:31 /etc/init.d/syslog
-rwxr-xr-x 1 root root 1369 Feb 22 2005 /etc/init.d/syslog.old
旧文件的日期变了,然后我将旧文件copy一份,并将其命名为/etc/init.d/syslog,然后重启syslog,结果syslogd 又恢复工作了.
原来是这个文件日期在捣乱!