克伦使用反引号的错误

下面的命令行工作正常

/usr/bin/mysqldump -uUser -pPass Db_name > /var/www/db_backup/db.`date +%Y%m%d%H%M`.sql 

但是当我尝试在cron中这样做时,我得到错误:

 bad ` sign errors in crontab file, can't install 

我看到网上的其他人通过转义百分号来解决同样的问题,但是这并没有帮助,我用没有格式说明符的反引号在date内试过了,仍然有错误。

我也看到了用单引号或双引号括起来的date参数,但这也没有帮助。

当然,我可以把它写入一个脚本并执行,我想 – 但是有什么好玩的呢?

有任何想法吗? 我正在使用RHEL 5。

Solutions Collecting From Web of "克伦使用反引号的错误"

$()来代替反引号。 你也许需要逃避百分号,因为cron会将它们转换为换行符。

 * 0 * * * /usr/bin/mysqldump -uUser -pPass Db_name > /var/www/db_backup/db.$(date +\%Y\%m\%d\%H\%M).sql 

此外,您应该将密码存储在具有安全权限(例如600或640) 的选项文件中 ,而不是通过命令行传递它。

把你的一行脚本(如图所示)放到一个合适的脚本文件中,并从cron中调用它:

 $ cat /usr/local/bin/db-backup #!/bin/sh /usr/bin/mysqldump -uUser -pPass Db_name > \ /var/www/db_backup/db.`date +%Y%m%d%H%M`.sql $ # use RHEL commands to add db-backup to your crontab