5

我正在配置 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

任何人都可以提出什么问题?

4

1 回答 1

5

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

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

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

于 2013-10-12T21:41:05.470 回答