#!/bin/bash
#scripts :yzg
#set -x
sql=/home/scripts
dbuser=root
dbpasswd=yzg1314520
nowtime=$(date +%Y%m%d%H%M)
serverlist=`cat /home/serverlist | awk '{print $2}'`
if [ -d $sql/$P/mysqlbak ];
then
echo "Directory exist"
else
echo "not is a Directory,please mkdir Directory"
mkdir $sql/$P/mysqlbak
if [ $? == 0 ] && [ -d $sql/$P/mysqlbak ];
then
echo "create Directory success"
fi
fi
sql_tar_export()
{
cd $sql/$P/mysqlbak
mysqldump -u$dbuser -p$dbpasswd $dbname -R test_1 > $nowtime.test_1.sql
tar -zcf $nowtime.test_1.Full.tar.gz $nowtime.test_1.sql
rm -rf $nowtime.test_1.sql
find $sql/$P/mysqlbak -name "*.test_1.Full.tar.gz" -mtime +1 -exec rm -rf {} \;
if [ "$?" == "0" ];
then
echo "已经正确备份,并删掉已解压的sql"
fi
}
sql_tar_input()
{
cd $sql/$P/mysqlbak
mysql -u$dbroot -p$dbpasswd -e 'drop database test_1'
mysql -u$dbroot -p$dbpasswd -e 'create database test_1'
if [ -a $sql/$port/mysqlbak/*.sql ];
then
mv $sql/$port/mysqlbak/*.sql /tmp
db_sql=`ls -tr /home/scripts/$P/mysqlbak/|tail -n 1`
tar -xf ${db_sql} -C $sql/$P/mysqlbak/
newname=`echo ${db_sql} | awk -F "." '{print $1"."$2}'`.sql
echo $newname
mysql -u$dbuser -p$dbpasswd test_1 < $newname
fi
if [ "$?" == "0" ];
then
echo "正确导入sql"
fi
}
case "$1" in
8[0-9][0-9][0-9]|all)
;;
*)
echo "请输入正确数字"
exit 0
;;
esac
case "$2" in
export|input)
;;
*)
echo "请输入正确字符"
exit 0
;;
esac
port=$1
if [ "$port" != "all" ] && [ "$2" == "export" ];
then
cd $sql/$port/mysqlbak
mysqldump -u$dbuser -p$dbpasswd $dbname -R test_1 > $nowtime.test_1.sql
tar -zcf $nowtime.test_1.Full.tar.gz $nowtime.test_1.sql
rm -rf $nowtime.test_1.sql
find $sql/$P/mysqlbak -name "*.test_1.Full.tar.gz" -mtime +1 -exec rm -rf {} \;
if [ "$?" == "0" ];
then
echo "已经正确备份,并删掉已解压的sql"
fi
elif [ "$port" != "all" ] && [ "$2" == "input" ];
then
cd $sql/$port/mysqlbak
mysql -u$dbroot -p$dbpasswd -e 'drop database test_1'
mysql -u$dbroot -p$dbpasswd -e 'create database test_1'
if [ -a $sql/$port/mysqlbak/*.sql ];
then
mv $sql/$port/mysqlbak/*.sql /tmp
fi
db_sql=`ls -tr /home/scripts/$port/mysqlbak/|tail -n 1`
tar -xf ${db_sql} -C $sql/$port/mysqlbak/
newname=`echo ${db_sql} | awk -F "." '{print $1"."$2}'`.sql
echo $newname
mysql -u$dbuser -p$dbpasswd test_1 < $newname
if [ "$?" == "0" ];
then
echo "已经正确导入sql到数据库"
else
echo "导入失败,检查原因"
fi
else [ "$port" == "all" ] && [ "$2" == "export" ] || [ "$2" == "input" ]
for P in $serverlist
do
cd $sql/$P/mysqlbak
case "$2" in
export)
sql_tar_export
;;
input)
sql_tar_input
;;
esac
done
fi
exit 0
#set +x