本文共 1289 字,大约阅读时间需要 4 分钟。
本脚本来自有学习阿铭的博文学习:
我的每天要做的工作就要备份数据库,需要涉及到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 Xtrabackupexex &> /tmp/mysql_bak.logif ! which innobackupex &> /dev/nullthen 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=10for (( 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 }& donewaitexec 1000>&-rm -f $fifofile
转载地址:http://yqfno.baihongyu.com/