首先mysql分库备份的命令为
[root@server1 test]# mysqldump -uroot -pwestos test|gzip >/mnt/test_$(date +%F).sql.gz
##将test库备份到mnt下
多个库备份到一个的文件的时候
[root@server1 test]# mysqldump -uroot -pwestos -B test oldboy westos |gzip >/mnt/test_$(date +%F).sql.gz
##将test,westos,oldboy三个库备份到mnt下
通过脚本执行:
#!/bin/bash
MYUSER=root ##mysql登陆用户
MYPASS=westos ##mysql登陆用户的密码
MYCMD="mysql -u$MYUSER -p$MYPASS" ##连接命令
MYDUMP="mysqldump -u$MYUSER -p$MYPASS" ##复制命令
for databases in `mysql -uroot -pwestos -e "show databases"|sed '1d'`
do
$MYDUMP $databases |gzip >/mnt/${databases}_$(date +%F).sql.gz
done
另一个备份脚本
#!/bin/bash
for DB in $(mysql -uroot -pwestos -e "show databases;" -E -N | grep -v '^*' | grep -v 'schema$')
do
echo "Backing up $DB"
mysqldump -uroot -pwestos $DB > /test/test/$DB.dump
done
echo ""
for DBDUMP in /test/test/*
do
SIZE=$(stat --printf "%s\n" $DBDUMP)
echo "$DBDUMP $SIZE"
done