Bash

Cron:只收到電子郵件中的錯誤?

  • March 1, 2022

最後,我通過一個 shell 腳本為我的數據設置了一個現實的備份計劃,該計劃由 cron 在很短的時間間隔內處理。不幸的是,每次執行 CRON 時,我都會收到空電子郵件,而不僅僅是在出現問題時。

是否有可能只在出現問題時讓 CRON 發送電子郵件,即。我TAR沒有按預期執行?

這是我的 crontab 目前的設置方式;

0 */2 * * * /bin/backup.sh 2>&1 | mail -s "Backup status" email@example.com

非常感謝!

理想情況下,如果一切都按預期進行,您希望備份腳本不輸出任何內容,並且僅在出現問題時才產生輸出。然後使用 MAILTO 環境變數將腳本生成的任何輸出發送到您的電子郵件地址。

MAILTO=email@example.com
0 */2 * * * /bin/backup.sh

如果您的腳本通常會產生輸出,但您在 cron 中不關心它,只需將其發送到 /dev/null,它只會在將某些內容寫入 stderr 時通過電子郵件發送給您。

MAILTO=email@example.com
0 */2 * * * /bin/backup.sh > /dev/null

引用自:https://serverfault.com/questions/226074