Logging
使用 syslog-ng 進行日誌記錄時,是否有理由使用 /dev/lognull 而不是 /dev/null?
在我的辦公室裡,我最近大聲地想知道,“為什麼不應該將這些日誌重定向到 /dev/null 而不是 /dev/lognull?” 有人告訴我有(或曾經有過)一個原因,但沒人記得。有人告訴我原因在某處的 syslog-ng 文件中,但到目前為止我還沒有找到它。有人知道原因嗎?
我剛剛收到我老闆的電子郵件:
好吧,我們將其命名為 lognull,但這只是我們的選擇。我又找到了原因。Syslog-ng 想要更改它用於記錄的文件的權限,包括 /dev/null。系統中的許多其他東西(包括不以 root 身份執行的東西)依賴於 /dev/null 的可讀性和可寫性。這就是為什麼你應該使用一個單獨的設備文件:
odin ~ # ls -ld /dev/null crw——- 1 root root 1, 3 Sep 30 15:48 /dev/null
也許最簡單的事情是讓 syslog-ng 的 init 腳本創建類似 /dev/lognull 的東西,以便系統始終可以使用它。我認為問題在於,由於現在設備的動態特性,它在重新啟動後就會消失。當我們在舊版本的 Linux 或 Solaris 上執行所有這些時,情況並非如此。這有意義嗎?
而且我還在syslog-ng 列表上找到了這個關於這個問題的執行緒。到目前為止,我已經遵循了關於空目的地的建議。