本文使用Xshell作为虚拟机连接的工具
简介
本文使用CentOS系统,使用命令行的方式自动备份MySQL数据
软件
- VMWare15
- CentOS7
- MySQL5.7
过程
这里的备份信息如下:
备份的数据库为zenith_star
备份文件夹路径为/home/mysql/backup
备份文件的格式为zenith_star_2021-06-15-12-00-00.sql
备份脚本为zenithstar_backup.sh
备份的时间为凌晨1点1分
保留最近30天的备份文件
具体的格式请按照实际需求处理
一、创建备份文件夹
[root@localhost mysql]# mkdir /home/mysql/backup
二、创建备份脚本
脚本文件的执行需要使用mysqldump指令和数据库的账号密码信息,但是脚本文件中不能直接写入账号密码信息,因此需要在my.cnf文件中,增加mysqldump的内容,并预先增加需要使用的账号密码信息
1、设置mysqldump指令信息
(1)编辑my.cnf文件
[root@localhost mysql]# vi/etc/my.cnf
(2)在最下方增加mysqldump的信息
具体的账号密码信息请按照实际需求处理
[mysqldump]
user=root
password=123456
2、创建脚本
(1)创建脚本文件
[root@localhost mysql]# touch zenithstar_backup.sh
(2)编写备份脚本内容
#!/bin/bash
#在此设置要备份的数据库名
DBNAME="zenith_star"
#备份数据存放位置
BACKDIR="/home/mysql/backup/"
#获取系统时间
DATE=`date +%Y-%m-%d-%H-%M-%S`
#备份文件名以时间命名
FILENAME=${DBNAME}_${DATE}.sql
#进入备份目录
cd ${BACKDIR}
#备份数据库
mysqldump --databases zenith_star > ${BACKDIR}${FILENAME}
#删除近30天文件
find ${BACKDIR} -mtime +29 -name "*.sql" -exec rm -rf {} \;
(4)为脚本文件添加权限
[root@localhost mysql]# chmod +x zenithstar_backup.sh
三、配置计划任务
(1)编辑crontab文件
[root@localhost mysql]# crontab -e
(2)设置定时任务
#这里设置为凌晨1点01分,减少服务器压力
1 1 * * * /home/mysql/zenithstar_backup.sh
(3)重启crontab
[root@localhost mysql]# systemctl restart crond
Corntab的格式解析
corntab的格式为:* * * * * commond
下表为格式从上向下显示
标识 | 内容 | 范围 |
---|---|---|
* | 分钟 | 1-59 |
* | 小时 | 0-23 |
* | 日期 | 1-31 |
* | 月份 | 1-12 |
* | 星期 | 0-7,周日为0或7 |
commond | 操作内容 | 这里可以填写需要执行的脚本 |
示例:
(1)在23点50分执行/home/mysql/doWork.sh脚本
50 23 * * * /home/mysql/doWork.sh
(2)在工作日(周一到周五)的凌晨2点15分执行/home/mysql/doWork.sh脚本
15 2 * * 1-5 /home/mysql/doWork.sh
15 2 * * 1,2,3,4,5 /home/mysql/doWork.sh
(3)每个5分钟执行一次/home/mysql/doWork.sh脚本
*/5 * * * * /home/mysql/doWork.sh
(4)在9月9日19点19分执行/home/mysql/doWork.sh脚本
19 19 9 9 * /home/mysql/doWork.sh
Corntab的常用指令
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新加载
service crond status //查看状态
crontab –e //增加/修改 crontab 文件(如果不存在则创建,如果存在则修改)
crontab –l //显示 crontab 文件
crontab -r //删除 crontab 文件