linux是比较常见的运行稳定的服务器,因此安装docker部署项目是极其方便的,在docker内使用mysql也是最常见的,本文就如何部署备份mysql的数据做个记录,记录下爬坑的过程。
1、mysql的备份数据的命令及恢复备份的命令(备份脚本的运行核心)
(1)、 备份命令解析
mysqldump -uroot -pgood good > /usr/good/data/mysql/$(date +%Y%m%d)/backupData$(date +%Y%m%d_%H%M%S).sql
命令解析
命令(从前到后) | 解释 |
---|---|
mysqldump | 数据备份命令 |
-uroot | 数据库的用户 |
-pgood | 数据库的用户密码 |
good | 备份的数据库 |
/usr/good/data/mysql/ | 备份的文件路径 |
$(date +%Y%m%d)/discuz_$(date +%Y%m%d_%H%M%S).sql #以日期文件夹时间名的sql文件
(2)、 恢复备份命令
mysql -uroot -pgood -P good < filename.sql
命令(从前到后) | 解释 |
---|---|
mysql | 数据库命令 |
-uroot | 数据库的用户 |
-pgood | 数据库的用户密码 |
good | 备份的数据库 |
filename.sql | 需要恢复的数据 |
2、linux的shell脚本内容
#!/bin/bash
#进入名字为mysql_good 的docker容器
docker exec -i mysql_good bash <<'EOF'
#在docker内建立对应日期的文件夹
mkdir -p /usr/good/data/mysql/$(date +%Y%m%d)
#备份文件到指定文件夹
mysqldump -uroot -pgood good > /usr/good/data//mysql/$(date +%Y%m%d)/discuz_$(date +%Y%m%d_%H%M%S).sql
#退出docker容器
exit
EOF
#进入宿主机的备份目录
cd /usr/good/DataBackup
#将容器内的备份文件拷贝到本地
docker cp mysql_good:/usr/good/data/mysql/$(date +%Y%m%d) /usr/good/DataBackup
3、建立定时任务
使用linux的crontab命令
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
查看crontab运行状态(安装可自行百度)
service crond status
创建实例过程
(1)创建定时文件
(2)编辑内容
设定每年12:15 和 17:15执行备份的shell脚本
(3)能够看到已经建立成功了
列举常用的定时实例(实例有很多其他省略)
30 21 * * * /etc/init.d/smb restart #每晚的21:30重启smb
45 4 1,10,22 * * /etc/init.d/smb restart #每月1、10、22日的4 : 45重启smb
10 1 * * 6,0 /etc/init.d/smb restart #每周六、周日的1:10重启smb
* */1 * * * /etc/init.d/smb restart # 每一小时重启smb