Cron

在日誌而不是電子郵件中擷取所有 crond 錯誤

  • March 22, 2021

我正在研究 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禁用發送郵件

它是在系統範圍內完成的,但它符合我的需求:

  • 企業根工作很安靜(庫存、更新檔)
  • 我的也不冗長
  • 機器是專用的

引用自:https://unix.stackexchange.com/questions/633376