我的mysql是docker 容器方式安装的,现在我需要做个定时备份mysql数据库。
一:准备mysql 备份的脚本
在安装mysql数据库的服务器是上,创建一个目录用来保存备份数据
mkdir -p /data/backup/dbbackup
进入/data/backup/目录,创建脚本mysqlbuckup.sh ,输入下面内容,根据自己容器名,密码,数据库名称做修改。
cd /data/backup/
#!/bin/bash
# 保留10天数据,
# db-mysql 为安装mysql的docker容器名称
# 判断目录是不是已经存在,如果不存在则创建
if [ ! -d "/data/backup/dbbackup" ]; then
mkdir -p /data/backup/dbbackup
fi
# person、area 为数据库的名称,备份数据库,有多少个数据库要备份添加多少个,Abcd1234 为数据库密码
#db-mysql 为运行mysql的容器名称,将备份的sql文件压缩为.gz格式的压缩包
docker exec db-mysql mysqldump -uroot -x -pabcd1234 person|gzip > /data/backup/dbbackup/person_$(date +%Y%m%d).sql.gz
docker exec db-mysql mysqldump -uroot -x -pabcd1234 area|gzip > /data/backup/dbbackup/area_$(date +%Y%m%d).sql.gz
#保留10天的数据,根据自己的需要设置保留多少天的数据
find /data/backup/dbbackup -mtime +10 |xargs rm -rf
给脚本赋权限
chmod 777 mysqlbuckup.sh
二:添加定时任务
在备份脚本服务器执行下面语句,进入定时任务编辑。
crontab -e
如下图,在后面添加 1 0 * * * sh /data/backup/mysqlbuckup.sh
添加后保存退出。 上面表示每天凌晨1点自动执行备份脚本。