Ubuntu设置定时任务自动备份mysql

创建备份程序

1. 修改mysql配置文件: vim /etc/mysql/conf.d/mysqldump.cnf

 文件尾部添加如下内容:

host = 127.0.0.1
user = 数据库用户名
password = 数据库密码

2. 创建一个文件夹用来放你备份的文件

cd /home/ubuntu
mkdir data_backup

3. 创建备份程序 =>  backup_mysql.sh

rq=$(date +%Y_%m_%d_%H_%M)
mysqldump 数据库名 >/home/ubuntu/data_backup/数据库名_$rq.sql

# rq:获取系统的date中的年Y月m日d时H分M
# mysqldump:  mysqldump命令备份数据库

4. 给备份程序添加操作权限

chmod +x backup_mysql.sh

5. 测试备份程序

执行: ./backup_mysql.sh

  执行成功,查看data_backup文件夹下有没有那个sql文件


配置定时任务

修改/etc/crontab

  sudo vim /etc/crontab

  添加如下记录:

30  14   *   *   *   root   /home/ubuntu/data_backup/backup_mysql.sh
分  时   天  月  周

注:表示每天14点30分以root用户执行 /home/ubuntu/data_backup/backup_mysql.sh

crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:

分钟 0 - 59        天 1 - 31  
小时 0 - 23        月 1 - 12
星期 0 - 6 0表示星期天

* (星号) 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
,(逗号) 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
/(斜线) 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 /2 代表每隔两分钟。所以 /1 和 * 没有区别

重启crontab

/etc/init.d/cron restart

  出错处理:如果执行2出现提示:

解决办法: rm -rf /var/run/crond.pid

  然后再执行:/etc/init.d/crond restart

发布了59 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43507959/article/details/102527413