繁体   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