版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41772936/article/details/81264588
大家好,今天给大家带来的是一个分库备份脚本
下面是准备好的4个数据库 aa bb cc dd
执行效果如下
恢复一下看看
shell脚本如下:
#!/bin/bash
myuser=root
mypasswd=123456
mycmd="mysqldump -u$myuser -p$mypasswd"
for dname in `mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"`
do
$mycmd --databases $dname >/opt/${dname}_`date +%F`.sql
done
解析如下:
#!/bin/bash
myuser=root #定义数据库用户
mypasswd=123456 #定义数据库密码
mycmd="mysqldump -u$myuser -p$mypasswd" #备份数据库的命令,这里调用了上面的用户密码。
#然后使用正则取出每个数据库的名字然后使用for循环分别备份,不知道怎么取的可以继续往下看
for dname in `mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"`
do
$mycmd --databases $dname >/opt/${dname}_`date +%F`.sql
#这里调用上面取出的数据库名字和备份命令,备份到指定位置并以时间命名
done
这个脚本的重点是在于取数据库的名字
`mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"`