4

我正在尝试通过 cpanel cron 作业面板汇总 MySQL 备份脚本,但我收到了我不理解的错误。我已经在我的 Ubuntu 上尝试过该命令

mysqldump -u(USERNAME) -p(PASSWORD) --all-databases | gzip > /home/MYHOMEDIR/myDBBckups/full_backup$(date "+%Y-%m-%d_%H:%M:%S").sql.gz

我面临的错误是:

---------- Email message ----------

From: Cron Daemon <root@MYSERVER>

Date: Thu, Jul 11, 2013 at 9:37 PM

Subject: Cron <MYUSERNAME@MYSERVER> mysqldump -u(USERNAME) -p(PASSWORD) --all-databases | 
gzip > /home/MYHOMEDIR/myDBBckups/full_backup$(date "+

To: MYEMAIL@gmail.com


/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'

/bin/sh: -c: line 1: syntax error: unexpected end of file 

---------- End of Email message ----------

当我删除 date 命令时,一切正常,但我不想每次都覆盖我的备份。

在同事的帮助下,我将其修复如下:

mysqldump -u(USERNAME) -p(PASSWORD) --all-databases | gzip > /home/MYHOMEDIR/myDBBckups/full_backup$(date "+\%Y-\%m-\%d_\%H:\%M:\%S").sql.gz

非常感谢。

4

2 回答 2

6

cron 作业的命令部分中的%字符被转换为换行符。要么使用\%来表示一个%字符,要么将date命令放入您从 调用的外部脚本中cron

于 2013-07-11T21:07:16.667 回答
1

Cron 解释 % 字符。

将该行放入文件中create_backup.sh,然后将命令bash /path/to/create_backup.sh放入您的 crontab 中。

于 2013-07-11T21:02:54.117 回答