Cron
在日誌而不是電子郵件中擷取所有 crond 錯誤
我正在研究 RHEL 7.9。在我的 crontab 中,我有以下變數和命令:
MAILTO="" SHELL="/usr/bion/ksh" 30 * * * * find /home/me/data/input -name "*.completed" -size +10M -print >> /home/me/jobs/completed.big 2>/home/me/jobs/completed.big.errors
由於每個人都在 SHELL 變數中檢測到了額外
o
的內容,因此您(和我)可以看出所有工作都在默默地失敗。該
/var/log/cron
文件充滿了所有預期的要執行的命令行。該
journalctl -xe -t crond
命令僅提到重新載入我的個人 cron 和跳過作業:Jan 30 01:21:05 servername crond[26104]: (root) INFO (Job execution of per-minute job scheduled for 01:20 delayed into subsequent minute 01:21. Skipping job run.) [...] Feb 05 16:02:01 servername crond[3997]: (me) RELOAD (/var/spool/cron/me)
看到我的工作沒有日誌,我刪除了 MAILTO 變數,然後我帳戶的本地郵箱收到如下消息:
[... Stripping mail headers] execl: couldn't exec `/usr/bion/ksh' execl: No such file or directory
由於此錯誤在命令實際啟動之前到達,因此我沒有在我的工作日誌中得到它。
有沒有辦法讓這些錯誤或至少擷取 CRON 未能在日誌中啟動命令?我們這裡有足夠的郵件,並且日誌已經被監控。
我已閱讀cron 錯誤記錄在哪裡?問題,但我想對“能否在郵件以外的其他地方找到crond錯誤? ”有一個明確的答案。這可能是 crond 的隱藏配置,或者其他任何東西,我不知道。
最後,我什至可以考慮欺騙郵箱重定向到日誌中,然後清理它。
根據這個參考,cron 守護程序有以下選項:
-s -m off
手冊頁確實引用了這些參數:
-s
將輸出發送到系統日誌(通常類似於 /var/log/cron)-m off
禁用發送郵件它是在系統範圍內完成的,但它符合我的需求:
- 企業根工作很安靜(庫存、更新檔)
- 我的也不冗長
- 機器是專用的