我遇到了一个奇怪的问题。我使用以下命令行通过控制台发送带有附件的电子邮件:
/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 脚本中,然后只需调用该脚本即可。