引言
使用Mysql的时候遇到需要定时备份数据库的问题,但苦于Mysql自身没有提供直接的工具。
安装7z的目的主要是用于对数据库备份后的文件的压缩和加密。如果不需要也可以跳过此步骤。
yum -y install epel-release
yum -y install p7zip p7zip-plugins
安装完成后使用以下命令测试时候安装成功
7za -h
给出一个备份的范例
#!/bin/bash
数据库参数
backupDatabase=
password=
存放备份的目录,可以是任意位置,先创建并赋权
baseDir=/data/databack/
最终文件名,使用类似 mysql_database_20201231.sql
fileName=mysql_${backupDatabase}_date +%Y%m%d%H%M%S
备份数据库 其中mysql代表容器名称,如果没有名称可以用其他方法代替
docker exec mysql mysqldump -uroot -p${password} ${backupDatabase} > ${baseDir}${fileName}.sql
如果需要对数据库加密并删除指定天数前的备份,可以在Shell文件中追加以下命令。
必须先正确安装7z才能使用7za命令压缩文件
加密压缩 使用7zip 密码123456
7za a ${baseDir}${fileName}.7z ${baseDir}${fileName}.sql -p123456
删除刚刚备份的sql文件,留下压缩的
rm -f ${baseDir}${fileName}.sql;
删除大于90天的备份数据
find ${baseDir} -mtime +90 -name "mysql_${backupDatabase}_*.7z" -exec rm -rf {} \;
添加定时任务需要使用到Linux的crontab服务。我们可以通过下列命令来检测并安装这个服务。
检查crontab工具是否安装
crontab -l
检查crond服务是否启动
service crond status
如果未安装服务我们需要进行安装
yum install vixie-cron
yum install crontabs
再确认安装完成后我们使用命令 crontab -e
打开crontab的编辑功能,添加如下示例:
定时任务 每日0点备份
注意别忘记 sh 命令
0 0 * * * sh /root/databack/dockerMysqlBackup.sh
添加完成后可以使用命令(systemctl restart crond
),重启下crond服务确保服务能正常运行。
- 第一个* : 分钟(0–59)
- 第二个* : 小时(0–23)
- 第三个* : 日期(0–31)
- 第四个* : 月份(1–12)
- 第五个* : 星期0–7(0或者7表示星期天)
- comand : 要执行的操作
举例:
Original: https://www.cnblogs.com/ykbb/p/15923706.html
Author: 一块白板
Title: 为Linux系统添加定时备份Mysql(Docker)指定数据库的方法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/610803/
转载文章受原作者版权保护。转载请注明原作者出处!