我意外删除了 /var/log/secure,我尝试重新创建它,但经过几次连接后它仍然保持空白。
在一切正常的服务器上,使用 ls -l 我得到:
-rw-------. root:root /var/log/secure
在无法正常工作的服务器上,使用 ls -l 我得到:
-rw------- root:root /var/log/secure
唯一的区别在于行尾带有“。”的权限,服务器上缺少该权限,因此无法正常工作。
任何想法 ?
答案1
所以问题是你的 syslog 进程仍然打开了已删除的文件。你需要重新启动 syslog 进程。默认情况下,在 centos 中,这是 rsyslog
service rsyslog restart
我相信你也可以看到它被删除了,如果你尝试类似
lsof | grep '/var/log/secure'
这将为您提供保持打开状态的进程 pid/进程名称。例如
[[email protected] ~]# lsof | grep '/var/log/secure'
rsyslogd 977 root 5w REG 253,0 585555 2756243 /var/log/secure
因此 rsyslogd 进程保持其打开状态
[[email protected] ~]# ps aux | grep 977
root 977 0.0 0.0 249856 5916 ? Sl 2014 8:25 /sbin/rsyslogd -i /var/run/syslogd.pid -