為什麼 Linux 上的 Postfix 在日誌文件的路徑名前需要一個“-”字元?
我在這裡找到了以下內容:
重要提示:在 Linux 上,您需要在路徑名前加上“-”字元,例如 -/var/log/maillog,否則 syslogd 程序將使用比 Postfix 更多的系統資源。
但是文件沒有給出任何理由。那麼,為什麼需要這個“-”呢?
僅當您仍然使用 syslogd 或更舊的 rsyslog 版本時才需要這樣做
來自http://www.rsyslog.com/doc/v3compatibility.html,“輸出文件同步”部分
Rsyslogd 盡量保持與庫存 syslogd 的兼容性。因此,如果未另行指定(通過在輸出文件名前放置破折號),它保留了股票 syslogd 的預設同步每個文件寫入的預設設置。雖然這在過去硬體不太可靠且 UPS 很少使用的日子裡是一個有用的功能,但在今天的世界中不再有用。相反,同步是一個高性能命中。有了它,rsyslogd 寫入文件的 速度比沒有它時慢50*倍左右。*由於高 IO 活動,它還會影響整體系統性能。在 rsyslog v3 中,同步已預設關閉。這是通過特定的配置指令完成的“ $ ActionFileEnableSync on/off" which is off by default. So even if rsyslogd finds sync selector lines, it ignores them by default. In order to enable file syncing, the administrator must specify " $ ActionFileEnableSync on" 在 rsyslog.conf 的頂部。這確保了同步只發生在管理員真正需要該(性能密集)功能的某些安裝中。在大多數情況下(如果不是全部),這會顯著提高 rsyslogd 性能沒有任何負面影響。