#!/bin/bash
# setting 只需要修改下面4项
dbs=( db_name1 db_name2 db_name3 ) #数据库名称
hostname=db_host #数据库服务器,请确保执行备份的服务器有权限连接到此数据库服务器
username=db_username #具有所填数据库名称备份权限的数据库用户
password=db_password #此数据库用户的密码
db_count=${#dbs[@]}
echo “There are (${db_count}) databases”
if [ ${db_count} -lt 1 ]
then
echo “Bye !”\n\n
exit 0
fi
case “$1″ in
backup)
echo “Staring to backup databases”
for db in ${dbs[@]}
do
echo “Starting backup database: “${db}” ……”
mysqldump -h${hostname} -u${username} -p${password} –opt –databases=TRUE –add-drop-database=TRUE ${db} | gzip > ${db}.sql.gz
echo “Complete backup database: “${db}” !”
done
echo “Staring to backup all databases to all.tar.gz”
mysqldump -h${hostname} -u${username} -p${password} –opt –all-databases | gzip > all.sql.gz
echo “Complete backup of all databases”
;;
restore)
echo “Staring to restore databases”
for db in ${dbs[@]}
do
echo “Starting restore database: “${db}” ……”
gunzip < ${db}.sql.gz | mysql -h${hostname} -u${username} -p${password}
echo “Complete restore database: “${db}” !”
done
echo “Complete restore of all databases”
;;
*)
echo “Usage: $0 {backup|restore}”
esac
exit 0