Linux

我不小心刪除了 /var/log/syslog,現在 rsyslog 不會記錄任何內容

  • October 27, 2016

我不小心刪除了 /var/log/syslog,以為系統會自動重新創建它(它不會)。

我使用touch /var/log/syslog並重新啟動了 rsyslog,但係統仍然沒有記錄任何內容。我還重新啟動了整個伺服器,但無濟於事。

的輸出 ls -l /var/log/syslog

-rwxrwxr-x 1 root root 0 Oct 27 13:16 syslog

如何讓系統重新開始記錄到 syslog?

致未來讀者的注意事項

重新啟動 rsyslog 確實解決了這個問題。它第一次對我不起作用的原因是因為我使用touch /var/log/syslog.

解決方案是 delete /var/log/syslog。然後執行sudo service rsyslog restart

TLDR;不要自己創建文件。刪除 syslog,然後重新啟動 rsyslog(這將為您創建 syslog)。問題解決了。

重新啟動後,rsyslog 應重新創建文件(具有正確的權限):

# mv /var/log/syslog /tmp/

# /etc/init.d/rsyslog restart
[ ok ] Restarting rsyslog (via systemctl): rsyslog.service.

# dir /var/log/syslog
-rw-r----- 1 root adm 327 Oct 27 13:28 /var/log/syslog

也許嘗試強制一個日誌條目以確保它正在執行:

# /usr/bin/logger -p0 foo
# tail /var/log/syslog
...
Oct 27 13:31:39 myserver root: foo

即使文件已被刪除,rsyslog 使用的文件句柄可能仍處於打開狀態並正在寫入。lsof可用於驗證這一點,如果您想查看日誌寫入的位置,還可以告訴您程序打開了哪些文件。pidof rsyslogd | xargs lsof -p

引用自:https://serverfault.com/questions/811736