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

云原生高级--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
doecho 备份 $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
domysqldump ${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}/$dbfor 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
doTABS=$(mysql ${CMD_OPT} -N -e "show tables from $db")[ -d ${BAK_DIR}/$db ] || mkdir -p ${BAK_DIR}/$dbmysqldump ${CMD_OPT} -B $db > ${BAK_DIR}/${db}_$(date +%F).sqlfor tab in $TABSdomysqldump ${CMD_OPT} $db $tab > ${BAK_DIR}/$db/${db}_$tab_$(date +%F).sqldone
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
doTABS=$(mysql ${CMD_OPT} -N -e "show tables from $db")[ -d ${BAK_DIR}/$db ] || mkdir -p ${BAK_DIR}/$dbmysqldump ${CMD_OPT} -B $db | gzip > ${BAK_DIR}/$db/${db}_$(date +%F).sql.gz
# 分表备份
for tab in $TABSdomysqldump ${CMD_OPT} $db $tab | gzip > ${BAK_DIR}/$db/${db}_$tab_$(date +%F).sql.gzdone
done

http://www.lryc.cn/news/251046.html

相关文章:

  • Spring Boot实现热部署
  • MVCC-
  • 键盘打字盲打练习系列之刻意练习——1
  • 某公司前端笔试题(12.30)
  • Sentinel核心类解读:Node
  • 网络安全领域的12个大语言模型用例
  • 十大网络攻击手段解析,助您建立坚固的网络防线
  • jvm 调优参数
  • OpenCV-Python:计算机视觉介绍
  • uni-app 微信小程序之自定义中间圆形tabbar
  • 使用 Go 构建高性能的命令行工具
  • 微前端框架 qiankun
  • 降序子数组最大和算法分析
  • Kafka常见面试题
  • rman SBT_TAPE NFS disk 模拟NBU带库 FRA
  • 物理世界中的等距3D对抗样本
  • 解决vue3项目打包发布到服务器后访问页面显示空白问题
  • 什么是SMTP服务器?如何配置?
  • el-tabel实现拖拽排序
  • 设计模式-结构型模式之适配器设计模式
  • Android 中的权限
  • 【java智慧工地源码】智慧工地物联网云平台,实现现场各类工况数据采集、存储、分析与应用
  • oracle 19c rac 安装手册
  • sqlMap
  • 蓝桥杯每日一题2023.12.2
  • 【计算机网络学习之路】序列化,反序列化和初识协议
  • 亚马逊云科技推出新一代自研芯片
  • VIT总结
  • C++11——initializer_list
  • 数学字体 Mathematical fonts