Mysqldump 无法在 FreeBSD 中使用动态文件名与 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 > /backups/mydb.`date +")

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

最佳答案

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

关于Mysqldump 无法在 FreeBSD 中使用动态文件名与 cron 作业一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076391/

相关文章:

mysql - 如何在一张表中包含多个select语句

java - 在 vaadin 中显示 mysql 数据库表中的数据

bash - 运行 cron bash 脚本时出现 env 问题

ubuntu - 每天将 Nginx 日志移出服务器是否可能导致损坏?

php - 确保Linux上只有一个正在运行的PHP进程

python - crontab-从特定路径运行nosetests

mysql - 我可以在 Magento 中使用 Redis 而不是 Mysql 吗?如何?

mysql - 优化查询以返回行数

php - MySQL从一个间隔中获取最小和最大范围

python - 如何在 ubuntu 的 cronjob 中运行 pipenv?