透過 crontab 觸發時 Mailx 或 mail 指令不包含正文

透過 crontab 觸發時 Mailx 或 mail 指令不包含正文

我創建了一個腳本來檢查 apache 伺服器的進程,並在進程停止時發送電子郵件。

apache_down=`service httpd status | grep "inactive (dead)"`
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]

該腳本在手動運行時正常運作 - 它會發送帶有正確主題和正文「$apache_down」的郵件。

但是,當我將其放在 crontab 下時,它僅發送帶有主題而不是正文的郵件。

*5 * * * * script.sh >/dev/null 2>&1

正文是空的,只有「」。我使用了 mail -s 並得到了相同的結果。這是我的腳本或 crontab 或 mailx 設定的問題嗎?

答案1

檢查$路徑如果變數的設定正確以執行命令,如果沒有,則在腳本中或通常為 cron 設定它。服務命令將不會運行,或者您必須透過執行它來手動添加它/usr/sbin/服務

也嘗試新增檢查變數是否在腳本內有一些輸出...

if [[ -n "$apache_down" ]]
then
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]
else
echo "apache running fine" | mailx -s “APACHE_Running_`hostname`” [email protected]
fi

相關內容