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