
我不小心刪除了 /var/log/secure,我嘗試重新建立它,但在幾次連接後它仍然保持空白。
在一切正常的伺服器上,使用 ls -l 我有:
-rw-------. root:root /var/log/secure
在它不起作用的伺服器上,使用 ls -l 我有:
-rw------- root:root /var/log/secure
唯一的差別在於「.」的權利。在該行的末尾,它在無法工作的伺服器上丟失了。
任何想法 ?
答案1
所以問題是您的系統日誌進程仍然打開已刪除的檔案。您需要重新啟動系統日誌進程。 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 -