【问题标题】:Cron job not running to backup mysql databaseCron 作业未运行以备份 mysql 数据库
【发布时间】:2016-01-22 20:37:46
【问题描述】:

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

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

但我每 15 分钟后在特定文件夹中找不到该 .sql 文件。

如何发现错误并修复它?

【问题讨论】:

  • 你能检查错误日志吗?
  • @bluto 哪个错误日志?它在哪里?
  • 您使用的是哪个服务器?
  • 然后你可以检查错误:/var/log/apache2/error.log文件
  • @bluto 我在那里检查过,但 cron 没有任何错误。

标签: mysql linux cron cron-task


【解决方案1】:

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

你需要这个 crontab 每 15 分钟运行一次任务:

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

如果您的作业仍未运行,可能有很多原因。

您可以通过如下简单测试开始调试:

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

(您应该每分钟看到一个新行“hi”附加到/home/user/test 文件)

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

【讨论】:

  • 我也试过了,但在 DBbackup 文件夹中找不到 .sql 文件。
  • 您是否尝试过在 shell 中手动运行mysqldump 命令? (没有 crontab)
  • 不,我没有。该怎么做?
  • 我的意思是你可以直接在bash中运行这个命令(/usr/bin/mysqldump -u XXX-pXXX demobackupDB > /home/user/DBbackup/$(date +%F)_backup.sql),看看有没有问题,在不涉及cron的情况下进行调试。
  • 如果我在 root 用户中执行命令,它在特定文件夹中创建了 .sql 文件,但是如果我在 sudo 用户中运行命令,那么它说权限被拒绝。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 2020-11-14
    • 2014-02-24
    • 1970-01-01
    • 2021-07-27
    • 2010-10-10
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多