簡體   English   中英

Email 不發送 cron 作業 shell 腳本

[英]Email not send in the cron job shell script

我有這個 cron 作業條目:

0 0 * * * /application-data/sendUrl.sh

/application-data/sendUrl.sh有這段代碼:

auditFile="/application-data/auditUrl.txt"
[ -e $auditFile ] && (echo -e "Subject: Foo\nTo: user@example.com\n\n" `cat $auditFile` | sendmail -t ; rm -f $auditFile )

shell 腳本具有所有root權限和正確的文件權限。 從命令行運行它會發送 email。只有當它由 cron 作業執行時,才不會發送 email,但命令列表末尾的文件會被刪除,所以我知道 shell 腳本已被執行。

知道我做錯了什么所以在作為 cron 作業運行時不發送 email 嗎?

您的腳本沒有 shebang,因此將使用sh執行; echo -e行為是用sh定義的實現

此外,即使sendmail失敗,您也會刪除該文件; 您至少應該在刪除之前測試返回狀態。

這樣效果更好嗎?

#!/bin/sh

auditFile="/application-data/auditUrl.txt"

[ -f "$auditFile" ] || exit

printf 'Subject: %s\nTo: %s\n\n' "Foo" "user@example.com" |
cat - "$auditFile" |
sendmail -t &&
rm -f "$auditFile"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM