Cron
避免來自 cron 作業的日誌噪音 - 使用 syslog-ng 而不是 syslog
在我的小型 Debian 擠壓網路伺服器上,我安裝了 syslog-ng(不是syslogd,就像在這個問題中一樣)。一般來說,我的日誌很好,很安靜,有
-- MARK --
線。我的
/var/log/syslog
,然而,到處都是這個Sep 23 23:09:01 bookchin /USR/SBIN/CRON[24885]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete > /dev/null) Sep 23 23:09:01 bookchin /USR/SBIN/CRON[24886]: (root) CMD ( [ -d /var/lib/php4 ] && find /var/lib/php4/ -type f -cmin +$(/usr/lib/php4/maxlifetime) -print0 | xargs -r -0 rm > /dev/null) Sep 23 23:17:01 bookchin /USR/SBIN/CRON[24910]: (root) CMD ( cd / && run-parts /etc/cron.hourly)
一種垃圾。避免它的干淨方法是什麼(再次使用 syslog-ng)?
對於 syslog-ng,它與正常 syslog 略有不同:您需要將 cron 添加到與
/var/log/syslog
. 在/etc/syslog-ng/syslog-ng.conf
中,替換為:filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
和:
filter f_syslog3 { not facility(cron, auth, authpriv, mail) and not filter(f_debug); };
你就完成了。
另一種選擇是防止 cron 記錄除錯誤以外的任何內容:
改變
/etc/default/cron
:# Or, to log standard messages, plus jobs with exit status != 0: # EXTRA_OPTS='-L 5' # # For quick reference, the currently available log levels are: # 0 no logging (errors are logged regardless) # 1 log start of jobs # 2 log end of jobs # 4 log jobs with exit status != 0 # 8 log the process identifier of child process (in all logs) # EXTRA_OPTS="-L 0"
預設情況下,EXTRA_OPTS 行是“”
附錄:
有人錯誤地編輯了這個答案,使它看起來好像
-L 0
會阻止 cron “一起”記錄。這是不正確的。請注意0
我發布的文字中的描述:# 0 no logging (errors are logged regardless)
或者只使用 4:
# 4 log jobs with exit status != 0
OP 希望在啟動 cron 作業時每分鐘都避免出現日誌消息。僅記錄錯誤或錯誤和非零退出狀態是一個不錯的選擇。