Ubuntu 服务器上的 mysql 数据库每日备份

Ubuntu 服务器上的 mysql 数据库每日备份

crontab -e 在 ubuntu 服务器中每天凌晨 2 点运行一个 backup.sh 文件。我写道:00 02 * * * root /home/backup.sh 然后/etc/init.d/cron restartcrontab -l显示:00 02 * * * root /home/backup.sh。我可以自己运行 backup.sh,它运行良好。但它没有按计划自动运行。

答案1

当您将 cron 作业作为用户作业(使用 编辑作业crontab -e)运行时,您无需指定用户。如果您运行系统 cron 作业,则可以指定用户。

要么把那一行放到/etc/crontab或者使用类似或的/etc/cron.d/yourfile编辑器 或者删除 /home/backup.sh 之前的“root”vinano

另外要注意的是,确保mysqldump脚本中的所有程序都具有完整路径,或者确保它们位于脚本执行环境 PATH(与 shell PATH 不同)中。请参阅:

man 5 crontab

示例 CRON 文件

系统 CRON 文件示例

答案2

将错误消息重定向到日志文件并检查。

/home/backup.sh 2>1 /home/backup.output

这很可能是权利或路径问题。

答案3

有两点需要讲:

  1. 安装新的 cron 作业时,不需要重新启动 cron 守护程序。
  2. cron 作业失败的最常见原因是用户权限/许可和环境变量。因此,您需要确保在同一用户下运行 cron 作业。此外,尝试通过包含完整路径来更改所使用的命令。

答案4

尝试按以下方式编辑 crontab:

0 2 * * * root /home/backup.sh

并确保授予该脚本执行权限。

相关内容