解决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 又恢复工作了.

  原来是这个文件日期在捣乱!