mydumper备份脚本(二)
base.txt" ];then
echo "将在当前目录下新建databases.txt."
touch ${filepath}/database.txt
echo "#Each line is stored a valid database name">${filepath}/database.txt
chmod 700 ${filepath}/database.txt
fi
#Remove the comment line
awk 'NR==2,NR==0 { print $1}' ${filepath}/database.txt> ${filepath}/tmpdatabases.txt
#To determine whether a file is empty
if [ -s ${filepath}/tmpdatabases.txt ];then
#开始时间
started_time=`date +%s`
echo "备份开始时间:${started_time}"
db_num00=`awk 'NR==1,NR==0 { print NR}' ${filepath}/tmpdatabases.txt |tail -n1`
echo "此次将备份${db_num00}个数据库:"
echo
or_dbnum=0
for i in `awk 'NR==1,NR==0 { print $1}' ${filepath}/tmpdatabases.txt`;
do
((or_dbnum+=1))
mysql_databases=$i
db_dpname=$dir_backup/${i}.${now_date}
echo -e "\e[1;32m mydumper开始备份第${or_dbnum}个数据库$i..... \e[0m"
sleep 2
echo -e "\e[1;32m mydumper玩命备份中.....稍等片刻.... \e[0m"
${mydumper} \
--database=${mysql_databases} \
--host=${mysql_host} \
--port=${mysql_port} \
--user=${mysql_user} \
--password=${mysql_pass} \
--outputdir=${db_dpname} \
--no-schemas \
--rows=50000 \
--build-empty-files \
--threads=4 \
--compress-protocol \
--kill-long-queries
if [ "$?" -eq 0 ];then
echo -e "\e[1;32m mydumper成功将数据库$i备份到:${db_dpname}. \e[0m"
echo
else
echo -e "\e[1;31m 备份异常结束. \e[0m"
fi
done
else
ipname=''
read -p "Please input you want to backup database name[a|A:ALL]:" ipname
#开始循环
#开始时间
started_time=`date +%s`
echo "备份开始时间:${started_time}"
if [ "$ipname" = "a" -o "$ipname" = "A" ];then
db_num=`awk 'NR==2,NR==0 { print NR-1}' ${judegedate_01} |tail -n1`
echo "此次将备份${db_num}个数据库:"
echo
mysql_databases=$ipname
or_dbnum=0
for i in `awk 'NR==2,NR==0 { print $1}' ${judegedate_01}`;
do
((or_dbnum+=1))
mysql_databases=$i
db_dpname=$dir_backup/${i}.${now_date}
echo -e "\e[1;32m mydumper开始备份第${or_dbnum}个数据库$i..... \e[0m"
sleep 2
echo -e "\e[1;32m mydumper玩命备份中.....稍等片刻.... \e[0m"
${mydumper} \
--database=${mysql_databases} \
--host=${mysql_host} \
--port=${mysql_port} \
--user=${mysql_user} \
--password=${mysql_pass} \
--outputdir=${db_dpname} \
--no-schemas \
--rows=50000 \
--build-empty-files \
--threads=4 \
--compress-protocol \
--kill-long-queries
if [ "$?" -eq 0 ];then
echo -e "\e[1;32m mydumper成功将数据库$i备份到:${db_dpname}. \e[0m"
echo
else
echo -e "\e[1;31m 备份异常结束. \e[0m"
fi
done
else
echo "此次备份的数据库名为:$ipname"
echo
#开始时间
STARTED_TIME=`date +%s`
mysql_databases=$ipname
db_dpname=$dir_backup/${mysql_databases}.${now_date}
judegedate_02="judegedate02.`date +%y%m%d%h%m%s`.txt"
schema_judege02="select schema_name from information_schema.schemata where schema_name='${ipname}';"
mysql -h${mysql_host} -P${mysql_port} -u${mysql_user} -p${mysql_pass} -e"${schema_judege02}" >${judegedate_02}
if [ ! -s "${judegedate_02}" ];then
echo " "
echo -e "\e[1;31m ******************************************************************* \e[0m"
echo -e "\e[1;31m !o(???)o! The schema_name ${ipname} not exits,pleae check . ~~~~(>
_<)~~~~ \e[0m"
echo -e "\e[1;31m ********************************************************************** \e[0m"
echo " "
rm -rf ${judegedate_01}
rm -rf ${judegedate_02}
exit 0
else
echo -e "\e[1;32m mydumper开始备份请稍等..... \e[0m"
sleep 2
echo -e "\e[1;32m mydumper玩命备份中.....稍等片刻.... \e[0m"
${mydumper} \
--database=${mysql_databases} \
--host=${mysql_host} \
--port=${mysql_port} \
--user=${mysql_user} \
--password=${mysql_pass} \
--outputdir=${db_dpname} \
--no-schemas \
--rows=50000 \
--build-empty-files \
--threads=4 \
--compress-protocol \
--kill-long-queries
if [ "$?" -eq 0 ];then
echo -e "\e[1;32m mydumper成功将数据库备份到:${db_dpname}. \e[0m"
else
echo -e "\e[1;31m 备份异常结束. \e[0m"
fi
fi
# 循环结束
fi
fi
rm -rf ${judegedate_01}
rm -rf ${judegedate_02}
rm -rf ${filepath}/tmpdatabases.txt
echo "完成于: `date +%F' '%T' '%w`"
######################################################################################################################
执行结果如下:#####################
The databases name in current instance is:
information_schema
mysql
performance_schema
test
wind
mpiao
mpadmin
mplog
Please input you want to backup database name[a|A:ALL]:A
备份开始时间:1431574874
此次将备份8个数据库:
mydumper开始备份第1个数据库information_schema.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库information_schema备份到:/backup/information_schema.201505141141.
mydumper开始备份第2个数据库mysql.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库mysql备份到:/backup/mysql.201505141141.
mydumper开始备份第3个数据库performance_schema.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库performance_schema备份到:/backup/performance_schema.201505141141.
mydumper开始备份第4个数据库test.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库test备份到:/backup/test.201505141141.
mydumper开始备份第5个数据库wind.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库wind备份到:/backup/wind.201505141141.
mydumper开始备份第6个数据库mpiao.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库mpiao备份到:/backup/mpiao.201505141141.
mydumper开始备份第7个数据库mpadmin.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库mpadmin备份到:/backup/mpadmin.201505141141.
mydumper开始备份第8个数据库mplog.....
mydumper玩命备份中.....稍等片刻....
mydumper成功将数据库mplog备份到:/backup/mplog.201505141141.
完成于: 2015-05-14 11:42:05 4