Mysqldump无法在FreeBSD中使用动态文件名处理cron作业

Mysqldump无法在FreeBSD中使用动态文件名处理cron作业,mysql,cron,Mysql,Cron,我想使用cron作业自动备份我的数据库,我想使用动态文件名指示备份日期 * * * * * mysqldump -udbuser -pdbpassword mydb > /backups/mydb.`date +"%Y-%m-%d"`.sql 但它似乎不起作用。我检查了cron日志,它显示如下 Oct 31 11:18:00 dbuser /usr/sbin/cron[94330]: (dbuser) CMD (mysqldump -udbuser -pdbpassword mydb &

我想使用cron作业自动备份我的数据库,我想使用动态文件名指示备份日期

* * * * * mysqldump -udbuser -pdbpassword mydb > /backups/mydb.`date +"%Y-%m-%d"`.sql
但它似乎不起作用。我检查了cron日志,它显示如下

Oct 31 11:18:00 dbuser /usr/sbin/cron[94330]: (dbuser) CMD (mysqldump -udbuser -pdbpassword mydb > /backups/mydb.`date +")

看起来命令没有完全执行。我如何修复它?

很抱歉没有给出您问题的简要答案,但您可以尝试以下方法:

-将此命令粘贴到bash文件(例如:/tmp/backup.sh):

-创建crontab条目:

 0 20 * * * /bin/sh /tmp/backup.sh
说明:
您的脚本将按照模式变量的顺序备份数据库db01、db02,并在20:00使用tar对其进行压缩。Cronjobs不理解这些变量。 下面是一个php脚本备份,它为我工作了很多年。它可以作为sql备份并直接压缩

$dbFile = '/data/Backup/backup-'.date('Ymd').'.sql.gz';
$dbHost = 'localhost'; // Database Host
$dbUser = 'username'; // Database Username
$dbPass = 'password'; // Database Password
exec( 'mysqldump --host="'.$dbHost.'" --user="'.$dbUser.'" --password="'.$dbPass.'" --add-drop-table "databasename" | gzip > "'.$dbFile.'"' );
下面是cronjob

* * * * * /usr/bin/php /path_to_backup_script/backup.php
* * * * * /usr/bin/php /path_to_backup_script/backup.php