Postfix

通過 cron 發送郵件不起作用

  • February 23, 2015

我們有一個 rsync 腳本,用於從伺服器 1 到伺服器 2 進行備份。伺服器是 Centos 類型的 Amazon Linux AMI。該腳本每天通過 crontab 執行。備份已完成,因此 cron 執行並且腳本有效。日誌已創建,應通過郵件發送給我們。由於某種原因,這不會發生。如果我手動執行腳本,則會發送郵件,因此郵件伺服器(Postfix)可以正常工作,並且 rsync 腳本末尾的郵件腳本也可以正常工作。下面你會看到 rsync 腳本:

echo "To: john@testdomain.info" > /tmp/rsync_test.log
迴聲“來自:server@testdomain.info”>>/tmp/rsync_test.log
echo "主題:Testmail >> /tmp/rsync_test.log
迴聲“” >> /tmp/rsync_test.log
貓/tmp/rsync_test.log | 發送郵件 -t

為什麼這不起作用,我該如何解決?

Cron 任務在有限的環境中執行特別是,PATH 環境變數可能不包含 cat 或 sendmail 的路徑

嘗試指定完整路徑:

/bin/cat /tmp/rsync_test.log | /usr/sbin/sendmail -t

這是我的猜測。

如果您想知道確切原因,請在設置 cronatsk 時將 crontask 腳本的 stdout 和 stderr 擷取到日誌文件中

*/5 * * * * /your/scripts/task.sh >/somepath/file.log 2>&1

它會告訴你錯誤資訊

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