在cron作业上出错,但在shell上工作正常

时间:2013-10-12 21:29:33

标签: shell cron mysqldump cpanel

我正在配置Cron自动备份我的sql。但是我认为Cron有一些问题并且效果不佳。

这是我正在运行的命令:

mysqldump --opt -Q -uhereisthename -p'hereisthepasswordwithstrangecharactersthatmustbeescaped' databasename | gzip > /home2/username/backups/backupnamefolder/backupdbwebsitename.`date +"%Y-%m-%d"`.gz

当我通过SSH运行它时,它可以正常工作并生成备份。 但是,如果我通过Cron运行它,我会收到以下错误:

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

任何人都可以建议什么是错的?

1 个答案:

答案 0 :(得分:5)

Cron将%视为特殊字符(意为“新行”,因此错误消息中对第0行和第1行的引用)。你需要逃脱它:

date "+\%Y-\%m-\%d"

顺便说一句,posix $( )语法通常比反引号更好 - 它允许嵌套命令。