用shell实现,以并发进程的形式将mysql数据库所有的表备份到当前目录,并把所有的表压缩到一个压缩包文件里。
假设数据库名字为mydb,用户名为aming,密码为passwd。
#!/bin/bash
#这个脚本用来并发备份数据库
#作者:猿课-阿铭 www.apelearn.com
#日期:2018-12-07
N=5
mysql -uaming -ppasswd mydb -e "show tables"|sed '1d' > /tmp/table.txt
n=`wc -l /tmp/table.txt|awk '{print $1}'
div()
{
n=`echo "scale=1;$1/$2"|bc`
n1=`echo "scale=1;$n+0.5"|bc`
echo $n1|cut -d. -f1
}
n1=`div $n $N`
split -l $n1 /tmp/table.txt
myd()
{
for t in `cat $1`
do
mysqldump -uaming -ppasswd mydb $t > $t.sql
done
}
for f in xaa xab xac xad xae
do
myd $f &
done
wait
tar czf mydb.tar.gz *.sql
rm -f *.sql