【Mysql Docker】备份 docker mysql 脚本
my.cnf
[mysqldump]
user=xxxx
password=xxxx
#!/bin/bash# 以下配置信息请自己修改
mysql_container="" # MySQL容器名称
#mysql_user="" #MySQL备份用户
#mysql_password="" #MySQL备份用户的密码
mysql_host=localhost
mysql_port=3306
mysql_charset="utf8mb4" #MySQL编码
backup_db_arr=("db1" "db2") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
backup_location=/home/mysql/backup #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
expire_days=30 #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效# 本行开始以下不需要修改
backup_time=`date +%Y%m%d%H%M` #定义备份详细时间
backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
backup_3ago=`date -d '15 days ago' +%Y-%m-%d` #3天之前的日期
backup_dir=$backup_location/$backup_Ymd #备份文件夹全路径
welcome_msg="Welcome to use MySQL backup tools!" #欢迎语# 判断MYSQL是否启动,mysql没有启动则备份退出
mysql_ps=`ps -ef |grep mysql |wc -l`
mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; thenecho "ERROR:MySQL is not running! backup stop!"exit
elseecho $welcome_msg
fi# 连接到mysql数据库,无法连接则备份退出
# mysql -h$mysql_host -P$mysql_port <<end
#systemctl restart mysqld <<end
#docker exec -it $mysql_container mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
#use mysql;
#select host,user from user where user='root' and host='localhost';
#exit
#end#flag=`echo $?`
flag=0
if [ $flag != "0" ]; thenecho "ERROR:Can't connect mysql server! backup stop!"exit
elseecho "MySQL connect ok! Please wait......"# 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份if [ "$backup_db_arr" != "" ];then#dbnames=$(cut -d ',' -f1-5 $backup_database)#echo "arr is (${backup_db_arr[@]})"for dbname in ${backup_db_arr[@]}doecho "database $dbname backup start..."`mkdir -p $backup_dir`#`mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`# 此处不要用 -t, 会导致备份文件为空`docker exec -i $mysql_container mysqldump $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`flag=`echo $?`if [ $flag == "0" ];thenecho "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"elseecho "database $dbname backup fail!"fidone# 传输到其他服务器,需要将本机ssh.id_pub 拷贝至目标服务器# 如果ipv6地址,请使用 \[2001::1\]#`scp -r $backup_dir backup@ipaddr:/home/backup/mysqlbackup`#flag=`echo $?`#if [ $flag == "0" ];then# echo "$backup_dir transport complete!"#else# echo "$backup_dir transport failed!"#fielseecho "ERROR:No database to backup! backup stop"exitfi# 如果开启了删除过期备份,则进行删除操作if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then#`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;``find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`echo "Expired backup data delete complete!"fiecho "All database backup success! Thank you!"echo "------------ $backup_Ymd ----------------"echo "-----------------END---------------------"exit
fi
解压 xxx.sql.gzgzip -d xxx.sql.gz
【Mysql Docker】备份 docker mysql 脚本相关推荐
- MySQL定时备份与清除脚本
前言: 为了避免数据库故障导致数据丢失,我们需要定期备份数据库中数据.这样可以减少数据的丢失.提高数据的安全性,具体操作如下: 正文: 这里主要使用mysqldump备份命令编写的脚本完成备份操作,然 ...
- MySQL 数据库备份一键执行脚本 --- 全库备份和增量备份
文章目录 1. 全库备份 2. 增量备份 3. 开启定时任务 1. 全库备份 vim all_db_bak.sh#!/bin/bash #MySQL 全库备份PATH="/usr/local ...
- mysql 自动备份_windows mysql 自动备份的几种方法
1.复制date文件夹备份 ============================ 假想环境: MySQL 安装位置:C:\MySQL 论坛数据库名称为:bbs 数据库备份目的地:C:\db_b ...
- windows mysql 自动备份_windows mysql 自动备份的几种方法总结--岁月博客提供
因为管理几台windows网站服务器,需要定时对mysql进行备份,每次都是手动,也经常忘记,所以就尝试了各种自动备份方法,网上也有安装mysql自动备份软件,尝试过不太好用.这里总结下通过bat+定 ...
- mysql 权限 备份还原,MYSQL学习笔记09:备份还原,用户权限,外键
在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 整个数据库数据备份也称为sql数据备份:备份的结果都是sql指令 在mysql中,提供了专门用于备份sql的客户端: ...
- linux怎么把mysql数据库备份还原,MySQL数据库备份和还原
MySQL数据库备份和还原 打开cmd命令行,一定不是mysql的命令行,我第一次就错在这个地方,郁闷了很久 备份MySQL数据库的命令 mysqldump -hhostname -uusername ...
- mysql 50g 备份多久,MySQL数据库备份过程的注意事项
今天看了看数据备份相关的东西,总结了几个MySQL数据备份的注意事项,简单分享一下吧. 对于MySQL备份,每个DBA的理解可能都不一样,备份可以分为下面几个维度: 文件种类划分: 1.物理备份,以x ...
- mysql 文本备份_[MySQL]用mysqldump制作文本备份_MySQL
mysqldump bitsCN.com [MySQL] 用mysqldump制作文本备份 在使用mysqldump备份MySQL时,备份文件是SQL格式的文本文件,它由一系列create table ...
- mysql nb3 备份_Navicat mysql 数据库备份和使用,备份以后是nb3文件-Go语言中文社区...
Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...
- xshell MySQL表备份_shell mysql数据迁移/备份
#!/bin/bash #### change the values below where needed..... #### 多数据库DBNAMES="MyDb1 MyDb2 MyDb3& ...
最新文章
- 每日一皮:没有经过测试就运行,自信的表情不言而喻!
- 【消息中间件】Spring整合RabbitMQ
- java.lang.NoClassDefFoundError comfasterxmljacksonannotationJsonView
- oracle rac 中的ocr,11g rac中 ocr和 votingdisk疑问
- oracle默认初始化用户名密码和密码修改
- 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法
- SAP CRM Fiori搜索没有命中情况下的调试细节
- 用HTML做软件UI用到的的一些技术
- vue一步一步带你封装一个按钮组件
- android组合控件 重叠,Android 组合控件实现布局的复用的方法
- The only difference is that they are written
- android 中解析json格式数据
- 张一鸣退一步,换字节跳动的“海阔天空”
- lecture7-序列模型及递归神经网络RNN
- 理解Visual Studio 解决方案文件格式(.sln)
- 地方时太阳时html源码,地方时、区时和世界时
- 运筹系列58:python使用numba进行加速
- HTML5 中article,header和footer标签的使用
- Python 破解 MD5 暗号
- 2016阿里巴巴校招内推offer (by 伟伯)