我的cron文件中有以下命令:
*/15 * * * * NODE_ENV=production ~/bin/node ~/myapp/app.js > /var/log/nodelog/nodelog_`date "+%Y-%m-%d_%H-%M"`.log
复制并粘贴到bash shell时,命令本身运行正常,但是cron作业不断发送以下错误消息:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
为什么它从命令行运行正常,但在cron作业中失败?命令行上预期的语法与cron中预期的语法之间是否存在差异?
答案 0 :(得分:4)
来自crontab联机帮助页:
命令中的百分号(%),除非使用反斜杠进行转义 (\),将更改为换行符,以及之后的所有数据 第一个%将作为标准输入发送到命令。
答案 1 :(得分:1)
由于以下一般原因,Crontabs容易出错:
提示
env -i ./myscript.sh
答案 2 :(得分:0)
查看cron文件权限。如果它归您所有,那么您可以使用〜。否则使用完整路径..!