我正在尝试使用linux crontab备份我的mysql数据库,如下面的命令,
$crontab -e
15 * * * * /usr/bin/mysqldump -u XXX-pXXX demobackupDB > /home/user/DBbackup/$(date +%F)_backup.sql
但我每隔15分钟就找不到特定文件夹中的.sql文件。
如何找到错误并修复它?
答案 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