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日

相关推荐

  • Mongodb复制集的安装和部署

    Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary…

    Linux系统 2025年6月22日
  • PuTTY中更改字体颜色

    PuTTY是一款开源(Open Source Software)的连接软件,主要由Simon Tatham维护,使用MIT许可证授权。包含的组件有:PuTTY, PuTTYgen,…

    Linux系统 2025年6月9日
  • Linux 系统中如何输入emoji

    emoji 是在 Unicode 字符空间里的有趣表情图,它们已经风靡于整个互联网。emoji 可以用来在社交媒体上表示自己的心情状态,也可以作为重要文件名的视觉标签,总之它们的各…

    Linux系统 2025年6月8日
  • Aria2下载提速具体方法

    Aria2 是一个多平台轻量级,支持 HTTP、FTP、BitTorrent 等多协议、多来源的命令行下载工具。Aria2 可以从多个来源、多个协议下载资源,最大的程度上利用了你的…

    Linux系统 2025年10月9日
  • Linux下使用pushd和popd高效切换目录

    pushd和popd是对一个目录栈进行操作,而dirs是显示目录栈的内容。而目录栈就是一个保存目录的栈结构,该栈结构的顶端永远都存放着当前目录。 1、pushd、popd和dirs…

    Linux系统 2025年10月7日
  • 详解Mariadb聚合函数及分组查询

    MariaDB Server 是最流行的开源关系型数据库之一。它由 MySQL 的原始开发者制作,并保证保持开源。它是大多数云产品的一部分,也是大多数Linux发行版的默认配置。M…

    Linux系统 2025年6月8日
  • 远程连接Linux服务器具体方法

    如何远程连接linux服务器?作为一款服务器级别的操作系统,linux充分考虑了远程登录的问题,无论是从linux、windows还是其他一些操作系统登录到linux都是非常方便的…

    Linux系统 2025年6月8日
  • OpenSSL 在 Apache 和 Dovecot 下的使用(二)

    本篇中,Carla Schroder 会解释如何使用 OpenSSL 保护你的 Postfix/Dovecot 邮件服务器 在上周,作为我们 OpenSSL 系列的一部分,我们学习…

    Linux系统 2025年7月3日
  • Linux C线程池的具体实现方法

    什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了,下面为大…

    Linux系统 2025年6月27日
  • Linux系统中安装Chrome和Sogou输入法具体方法

    本篇文章重点为大家讲解一下Linux系统中安装Chrome和Sogou输入法具体方法,有需要的小伙伴可以参考一下。 安装谷歌浏览器 install google-chro…

    Linux系统 2025年10月6日

发表回复

登录后才能评论