Cron作业没有运行来备份mysql数据库

时间:2015-10-23 10:24:29

标签: mysql linux cron cron-task

我正在尝试使用linux crontab备份我的mysql数据库,如下面的命令,

$crontab -e
15 * * * * /usr/bin/mysqldump -u XXX-pXXX demobackupDB > /home/user/DBbackup/$(date +%F)_backup.sql

但我每隔15分钟就找不到特定文件夹中的.sql文件。

如何找到错误并修复它?

2 个答案:

答案 0 :(得分:2)

你有错误的crontab。您指定的是"每小时后15分钟运行任务"。

您需要此crontab每15分钟运行一次任务:

*/15 * * * * /usr/bin/mysqldump -u XXX-pXXX demobackupDB > /home/user/DBbackup/$(date +%F)_backup.sql

如果你的工作还没有开始,可能有很多原因。

您可以使用以下简单测试开始调试:

* * * * * echo hi >> /home/user/test

(您应该看到一个新行"嗨"每分钟附加到/home/user/test文件一次)

如果不是这种情况,请在此处查看ubuntu的可能原因:https://askubuntu.com/q/23009 另请参阅cron log:https://askubuntu.com/q/56683/103599

答案 1 :(得分:0)

您可以使用语句创建文件并使其可执行

echo '/usr/bin/mysqldump -u XXX-pXXX demobackupDB > /home/user/DBbackup/$(date +%F)_backup.sql' > backupjob

让它们可执行

chmod +x backupjob

然后运行它

sudo ./backupjob

如果一切正常,应该创建mysql-backup-file。如果没有,继续调试你的语句,否则改变你的cronjob条目:

cronjob -e

# My MySQL-Backup-Job
*/15 * * * * /yourpath/backup
...

重要:Crontab-Table必须以空行结束!

更多信息:Ubuntu - Cron