【发布时间】:2010-07-22 20:58:57
【问题描述】:
这个命令:
/usr/bin/mysqldump --add-drop-table -u myuser -pmypass mydb > "/home/myuser/dbBackups/"`date +%Y%m%d`".sql"
在命令行中运行良好,但是当 b cron 运行它时,我得到了
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
该命令也都在 crontab 中的一行,所以我对第 0 行和第 1 行的引用感到困惑......
谁能告诉我我在那里做错了什么?
【问题讨论】:
-
当您从命令行运行时,您是否使用与 cron 相同的 shell (/bin/sh)?
-
提到哪个 unix 会有所帮助。从可用信息中我唯一能猜到的是您的登录 shell 可能不是 /bin/sh,因此请尝试运行 /bin/sh,然后运行您的命令。哦,还要检查以确保您没有意外地用制表符代替空格 - cron 可能会对此感到困惑。
-
啊!我正在运行 bash 而 cron 不是。知道 /bin/sh 中正确的反引号语法是什么吗?我真的只熟悉bash。服务器是 Linux。
-
嗯,你使用的语法在我试过的 Linux 机器上的 sh 上工作,但你可能有不同的版本。你可以在这里粘贴 sh --version 的输出吗?另外,要验证 cron 中没有多余的字符,您能否粘贴运行时该行的显示方式:crontab -l |猫-兽医
-
反引号在 /bin/sh 和 bash 上是一样的。
标签: unix command-line cron