通过 cronjob 发送带附件的电子邮件时出错,但在 bash 中可以正常使用

通过 cronjob 发送带附件的电子邮件时出错,但在 bash 中可以正常使用

我遇到了一个奇怪的问题。我使用以下命令行通过控制台发送带有附件的电子邮件:

/usr/bin/mutt -s "AwStats $(date +%d.%m.%Y)" -a /path/to/file [email protected] < /dev/null

奇迹般有效。

但我希望它通过 cron 发送,所以我创建了这个 cronjob:

@daily root /usr/bin/mutt -s "AwStats $(date +%d.%m.%Y)" -a /path/to/file [email protected] < /dev/null 

cronjob 确实执行了,但是失败并显示以下错误消息:

/bin/sh: -c: line 0: unexpected EOF while looking for matching `)'
/bin/sh: -c: line 1: syntax error: unexpected end of file

我不知道为什么。有人能帮忙吗?非常感谢!

亲切的问候-A

答案1

在 crontab 中你需要%\so来转义

@daily root /usr/bin/mutt -s "AwStats $(date +\%d.\%m.\%Y)" -a /path/to/file [email protected] < /dev/null

可能会帮你解决问题。

答案2

除了 Iain 的回答之外,由于 cron 不是 bash,你可能还需要更改

$(date +\%d.\%m.\%Y)

成为

`date +\%d.\%m.\%Y`

或者,您可以将所有原始工作放入 bash 脚本中,然后只需调用该脚本即可。

相关内容