Shell脚本习题:MySQL分库分表备份

脚本详细内容

[root@db02 scripts]# cat /server/scripts/Store_backup.sh

  #!/bin/sh

  MYUSER=root

  MYPASS=xuliangwei

  SOCKET=/data/3306/mysql.sock

  MYLOGIN=”mysql -u$MYUSER -p$MYPASS -S $SOCKET”

  MYDUMP=”mysqldump -u$MYUSER -p$MYPASS -S$SOCKET -B”

  DATABASE=”$($MYLOGIN -e “show databases;”|egrep -vi “Data|_schema|mysql”)”

  for dbname in $DATABASE

  do

  MYDIR=/server/backup/$dbname

  [ ! -d $MYDIR ] && mkdir -p $MYDIR

  $MYDUMP $dbname|gzip >$MYDIR/${dbname}_$(date +%F).sql.gz

  done

执行后的结果

  [root@db02 /]# tree /server/backup/

  /server/backup/

  ├── oldboy26

  │ ├──oldboy26_2015-12-29.sql.gz

  │ ├──oldboy26_2015-12-30.sql.gz

  │ └──oldboy26_2015-12-31.sql.gz

  ├── oldboy_xuliangwei26

  │ ├──oldboy_xuliangwei26_2015-12-29.sql.gz

  │ ├──oldboy_xuliangwei26_2015-12-30.sql.gz

  │ └──oldboy_xuliangwei26_2015-12-31.sql.gz

  └── xuliangwei26

  ├──xuliangwei26_2015-12-29.sql.gz

  ├──xuliangwei26_2015-12-30.sql.gz

  └──

  xuliangwei26_2015-12-31.sql.gz

  3 directories, 9 files

脚本详细内容

  [root@db02 scripts]# cat mysql_table.sh #

  #!/bin/sh

  USER=root

  PASSWD=xuliangwei

  SOCKET=/data/3306/mysql.sock

  MYLOGIN=”mysql -u$USER -p$PASSWD -S$SOCKET”

  MYDUMP=”mysqldump -u$USER -p$PASSWD -S$SOCKET”

  DATEBASE=”$($MYLOGIN -e “show databases;”|egrep -vi “Data|_schema|mysql”)”

  for dbname in $DATEBASE

  do

  TABLE=”$($MYLOGIN -e “use $dbname;show tables;”|sed ‘1d’)”

  for tname in $TABLE

  do

  MYDIR=/server/backup/$dbname/${dbname}_$(date +%F)

  [ ! -d $MYDIR ] && mkdir -p $MYDIR

  $MYDUMP $dbname $tname |gzip >$MYDIR/${dbname}_${tname}_$(date +%F).sql.gz

  done

  done

查看执行后的结果

  [root@db02 scripts]# tree /server/backup/

  /server/backup/

  ├── oldboy26

  │ ├──oldboy26_2015-12-30

  │ │├──oldboy26_oldboy_test_2015-12-30.sql.gz

  │ │└──oldboy26_oldboy_test2_2015-12-30.sql.gz

  │ └──oldboy26_2015-12-31

  │ ├── oldboy26_oldboy_test_2015-12-31.sql.gz

  │ └── oldboy26_oldboy_test2_2015-12-31.sql.gz

  ├── oldboy_xuliangwei26

  │ ├──oldboy_xuliangwei26_2015-12-30

  │ │├──oldboy_xuliangwei26_cloudstack_2015-12-30.sql.gz

  │ │├──oldboy_xuliangwei26_dashborad_2015-12-30.sql.gz

  │ │└── oldboy_xuliangwei26_student_2015-12-30.sql.gz

  │ └──oldboy_xuliangwei26_2015-12-31

  │ ├──oldboy_xuliangwei26_cloudstack_2015-12-31.sql.gz

  │ ├──oldboy_xuliangwei26_dashborad_2015-12-31.sql.gz

  │ └──oldboy_xuliangwei26_student_2015-12-31.sql.gz

  └── xuliangwei26

  ├──xuliangwei26_2015-12-30

  │├──xuliangwei26_openstack_2015-12-30.sql.gz

  │├──xuliangwei26_saltstack_2015-12-30.sql.gz

  │├──xuliangwei26_server_2015-12-30.sql.gz

  │└──xuliangwei26_zabbix_2015-12-30.sql.gz

  └──xuliangwei26_2015-12-31

  ├──xuliangwei26_openstack_2015-12-31.sql.gz

  ├──xuliangwei26_saltstack_2015-12-31.sql.gz

  ├──xuliangwei26_server_2015-12-31.sql.gz

  └──xuliangwei26_zabbix_2015-12-31.sql.gz

  9 directories, 18 files

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/5950.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • CentOS 8上安装GCC具体方法

    Linux系统下的gcc(GUN C Complier)是GUN的缩写。 在Linux和Unix下,一般我们使用gcc进行编译 c和c++代码,本篇文章重点为大家讲解一下CentO…

    Linux系统 2025年6月4日
  • Fedora 25 Workstation安装指南

    Fedora 25 Workstation是一款优秀的linux发行版本,由Red Hat倾情赞助,为我们带来了许多新功能和更新,理所当然,Fedora 25成为一个相当重要的版本…

    Linux系统 2025年6月8日
  • 详解Go中JSON处理

    Go语言内建对JSON的支持。使用Go语言内置的encoding/json标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据。在Go语言实现JSON的编码和解码时,遵循…

    Linux系统 2025年6月8日
  • 加固Redis服务安全具体方法

    Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,…

    Linux系统 2025年6月8日
  • Linux下设置开机自动运行

    有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu …

    Linux系统 2025年6月12日
  • 详解Sass 变量

    Sass(Syntactically Awesome StyleSheets)是css的一个扩展开发工具,它允许你使用变量、条件语句等,使开发更简单可维护。 变量用于存储一些信息,…

    Linux系统 2025年6月10日
  • 讲解一下缓存系统三座大山

    缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache,在Linux中有TLB加速虚拟地址和物理地址的转换,在浏览器有本地缓存、手机有本地缓存等。 1.无处不在的缓存 缓…

    Linux系统 2025年6月8日
  • Linux下部署VPS

    VPS技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器技术,和虚拟化技术 。在容器或虚拟机中,每个VPS都可选配独立公网IP地址、独立操作系统、实现不…

    Linux系统 2025年6月13日
  • 通过PySnooper调试python代码

    PySnooper是一款适合菜鸟用的代码调试工具。 如果Python代码哪儿输出不对劲了,之前一般都是利用print函数结合pdb.setTrace()来找问题,如果使用pysno…

    Linux系统 2025年6月8日
  • Linux中进程通信方法

    每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进…

    Linux系统 2025年6月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注