linux 下 自动备份docker 内 mysql 数据

使用脚本 + crontab 方式定期备份运行在主机docker 容器内部数据

备份脚本:

docker exec -i mysql bash <<'EOF'

mkdir /backup/mysql/$(date +%Y%m%d)

# 备份指定数据库
mysqldump -uroot -padmin discuz > /backup/mysql/$(date +%Y%m%d)/discuz_$(date +%Y%m%d_%H%M%S).sql

# 备份所有数据库
mysqldump --no-defaults --events --all-databases -uroot -padmin > /backup/mysql/$(date +%Y%m%d)/all_$(date +%Y%m%d_%H%M%S).sql

exit

EOF

mkdir /backup/mysql/$(date +%Y%m%d)

docker cp mysql:/backup/mysql/$(date +%Y%m%d) /backup/mysql/

新增crontab任务:

crontab -e

# 每天下午一点执行脚本
0 13 * * * bash /backup/mysql.sh

重启crontabd 服务

service crond restart

 

 

 

你可能感兴趣的:(bash,docker,mysql,mysqldump,linux,运维,docker,mysql)