[英]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.