当前位置: 首页 > article >正文

云原生高级--shell自动化脚本备份

=======================================================================
                                                        shell自动化脚本实战---备份
=======================================================================

数据库备份: 结合计划任务 MySQL、 Oracle
    网站备份: tar,异地保存--ftp、rsync
    一、数据库备份
    1.利用自带工具mysqldump 实现数据库分库备份

        分库备份:
        1> 如何获取备份的数据库列表

[root@localhost mysql-5.7.18]# DBS=`mysql -uroot -p'123456' -N -e 'show databases' | egrep -v "information_schema|mysql|performance_schema|sys"`
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql-5.7.18]# echo $DBS

       2> 循环遍历

for db in $DBS
do
	echo 备份 $db
done

        3> 备份语句实现

[root@localhost ~]# mysqldump -uroot -p'123456' -B $db > $db.sql
优化:
[root@localhost ~]# mysqldump -uroot -p'123456' -B user > user_$(date +%F).sql
分库备份参考代码:
#!/bin/bash

#define var
BAK_DIR=/backup/db
CMD_OPT="-uroot -p123456"
EX_DB="information_schema|mysql|performance_schema|sys"

DBS=$(mysql ${CMD_OPT} -N -e 'show databases' | egrep -v ${EX_DB})


# main program
[ -d ${BAK_DIR} ] || mkdir -p ${BAK_DIR}

for db in $DBS
do
   mysqldump ${CMD_OPT} -B $db > ${BAK_DIR}/${db}_$(date +%F).sql
done

2、分表

mysql -uroot -p'123456' -N -e 'show tables from user'

#!/bin/bash

#define var
BAK_DIR=/backup/db
CMD_OPT="-uroot -p123456"
db=user
TABS=$(mysql ${CMD_OPT} -N -e "show tables from $db")


# main program
[ -d ${BAK_DIR}/$db ] || mkdir -p ${BAK_DIR}/$db

for tab in $TABS
do
mysqldump ${CMD_OPT} $db $tab > ${BAK_DIR}/$db/${db}_$tab_$(date +%F).sql

3、分库分表

#define var
BAK_DIR=/backup/db
CMD_OPT="-uroot -p123456"
EX_DB="information_schema|mysql|performance_schema|sys"

DBS=$(mysql ${CMD_OPT} -N -e 'show databases' | egrep -v ${EX_DB})

for db in $DBS
do
	TABS=$(mysql ${CMD_OPT} -N -e "show tables from $db")
	[ -d ${BAK_DIR}/$db ] || mkdir -p ${BAK_DIR}/$db
	mysqldump ${CMD_OPT} -B $db > ${BAK_DIR}/${db}_$(date +%F).sql

	for tab in $TABS
	do
	  mysqldump ${CMD_OPT} $db $tab > ${BAK_DIR}/$db/${db}_$tab_$(date +%F).sql
	done
done

4.优化

优化:
#!/bin/bash

#define var
BAK_DIR=/backup/db
CMD_OPT="-uroot -p123456"
EX_DB="information_schema|mysql|performance_schema|sys"

DBS=$(mysql ${CMD_OPT} -N -e 'show databases' | egrep -v ${EX_DB})

# main program
for db in $DBS
do
  TABS=$(mysql ${CMD_OPT} -N -e "show tables from $db")
  [ -d ${BAK_DIR}/$db ] || mkdir -p ${BAK_DIR}/$db
  mysqldump ${CMD_OPT} -B $db | gzip > ${BAK_DIR}/$db/${db}_$(date +%F).sql.gz
# 分表备份
for tab in $TABS
  do
    mysqldump ${CMD_OPT} $db $tab | gzip > ${BAK_DIR}/$db/${db}_$tab_$(date +%F).sql.gz
  done
done


http://www.kler.cn/a/154693.html

相关文章:

  • python面向对象基础入门
  • 用pandoc工具实现ipynb,md,word,pdf之间的转化
  • HarmonyOS ArkTs 解决流式传输编码问题
  • 【3D Slicer】的小白入门使用指南八
  • JVM双亲委派与自定义类加载器
  • apk反编译修改教程系列-----apk应用反编译中AndroidManifest.xml详细代码释义解析 包含各种权限 代码含义【二】
  • 固定Microsoft Edge浏览器的位置设置,避免自动回调至中国
  • Dart编程基础 - 一种新的编程语言
  • vmware系列:【VMware篇】8-vCenter的安装与配置(一)以IP地址安装
  • Eaxyx 让圆球跟随鼠标移动
  • 《功能磁共振多变量模式分析中空间分辨率对解码精度的影响》论文阅读
  • postman打开白屏
  • 目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】图像预处理方法
  • 怎么通过邻接矩阵求图的通路总数和回路总数?
  • SpringSecurity工作原理
  • Spring MVC常用的注解, Controller注解的作用,RequestMapping注解的作用 @ResponseBody注解的作用
  • 制作一个RISC-V的操作系统二-RISC-V ISA介绍
  • ZLMediakit-method ANNOUNCE failed: 401 Unauthorized(ffmpeg、obs推流rtmp到ZLM发现的问题)
  • 利用Python爬虫爬取豆瓣电影排名信息
  • 阶段三:Web开发(如何部署和优化Web应用)
  • 传纸条(算法题)
  • 开关电源的电感选择和布局布线
  • 面试--各种场景问题总结
  • 图论|684.冗余连接 685. 冗余连接 II
  • c语言练习13周(6~10)
  • 汇编语言实现音乐播放器