Cron
防止 cron 發送錯誤消息
我已將 cron 設置為每 15 分鐘為使用者 pi 執行一個任務(在我的 Raspberry Pi 上執行 Raspbian Stretch)。
6,21,36,51 * * * * /usr/bin/mosquitto_sub -h Pi3Plus.local -v -C 1 -t weather >> weather.log
我還設置了 ssmtp 以通過 gmail 發送電子郵件。
cron 任務經常無法連接到伺服器,並生成錯誤消息。
問題是它然後嘗試向使用者 pi 發送一條消息,該 ssmtp 更改為 pi@gmail 並發送到 gmail,但它失敗了。
我已經閱讀了 ssmtp、ssmtp.conf、cron、crontab 的手冊,但找不到任何東西來阻止這些消息。
我可以編寫一個腳本來擷取 cron 任務中的錯誤消息,以防止它產生錯誤。
除了 LOGNAME、HOME 和 SHELL,如果在“this”crontab 中執行命令,cron(8) 有任何理由發送郵件,它還會查看 MAILTO。如果 MAILTO 已定義(且非空),則將郵件發送給如此命名的使用者。**如果 MAILTO 已定義但為空 (MAILTO=""),則不會發送任何郵件。**否則,郵件將發送給 crontab 的所有者。
只需將變數添加到 crontab 文件的頂部,如本範例所示(取自同一手冊頁,為清楚起見稍作編輯):
# mail any output to 'paul', no matter whose crontab this is MAILTO=paul # run five minutes after midnight, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1