我在crontab中创建了一个新任务,如下所示:
*/2 * * * * mongodump --db prodys --out /backup/databases/mongoDatabases/`date +"%m-%d-%y"`
我收到了以下错误:
/bin/sh: 1: Syntax error: EOF in backquote substitution
请帮助,我没有任何错误。
答案 0 :(得分:14)
问题在于cron
将%
视为换行符。来自crontab POSIX man
页面:
命令中的百分号(%),除非使用反斜杠\进行转义, 将更改为换行符,并在第一个%之后的所有数据 作为标准输入发送到命令。
同样使用Command Substitution语法作为$()
而不是遗留的``语法
您可以将命令更改为
*/2 * * * * mongodump --db prodys --out /backup/databases/mongoDatabases/$(date +'\%m-\%d-\%y')