Shell多线程备份数据库的脚本

本脚本来自有学习阿铭的博文学习:

我的每天要做的工作就要备份数据库,需要涉及到Percona Xtrabackup,mysql数据库中最良心的公司,解决了很多mysql数据库的bug。废话多说,开始脚本

提示:本文中的S全部都$符

#!/bin/bash
#用途:Shell多线程备份数据库的脚本。
#作者:Caron maktini
#日期:2019年1月5日
#版本:v0.1

##假设100个数据库的库名、host、port以及配置文件路径保存到了一个文件下,文件为/tmp/database.list
##格式:db1 10.1.1.2 3308  /data/mysql/db1/my.cnf
##备份数据库使用的软件是Percona Xtrabackup

exex &> /tmp/mysql_bak.log

if  ! which  innobackupex  &> /dev/null
then
      echo  "安装Xtrabackup工具 "
      rpm -ivh  xtrabackup.tar
      yum install -y     percona-xtrabackup-24
       if [ $?  -ne 0 ]
       then
             echo  "安装Xtrabackup工具,出现错误"
             exit 1
       fi
 fi 

bakdir=/data/backup/mysql 
bakuser=admin 
bakpass=administrator 


function bak_data  {
    db_name=$1 
    db_host=$2 
    db_port=$3 
    cnf=$4 
     [  -d Sbakdir/Sdb_name ] || mkdir -p   Sbakdir/$db_name 
      innobackupex  --defaults-file=S4  --host=S2  --port = S3
 --user=Sbakuser  --password=Sbakpass   Sbakdir
          if  [  $? -ne 0 ]
          then
                echo `备份数据库$1出现问题`
          fi
}
    


fifofile=/tmp/$$ 
mkfifo    $fifofile 
exec 1000<>  $fifofile 

thread=10
for   (( i=0;i<$thread; i++)) 
do 
    echo  >&1000 
done 

cat /tmp/databases.Iist | while read line 
do 
    read -u1000
    {
        bak_data ' echo $line`
        echo  >&1000
    }&  
done

wait
exec 1000>&-
rm -f  $fifofile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值