Linux
我不小心刪除了 /var/log/syslog,現在 rsyslog 不會記錄任何內容
我不小心刪除了 /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