#!/bin/bash #对mysql数据库进行制定数据库表备份
#$1: 0-备份,1-表恢复
#$2: 数据库
#$3: 表名
#$4: 表名
#...
menu_func()
{
cat <<EOF
`echo "=============================="`
`echo -e "1、ip:192.168.0.23, port:60012\n"`
`echo -e "2、ip:192.168.0.22, port:60010\n"`
`echo -e "3、ip:192.168.0.20, port:60009\n"`
`echo "=============================="`
EOF
}
menu_func read -p "请选择数据库(1/2/3):" num
if [ $num -ne 1 ] && [ $num -ne 2 ] && [ $num -ne 3 ];then
echo -e "选择错误,请重新选择\n"
exit -1
fi
case $num in
1)
DB_HOST="192.168.0.23"
DB_USER="root"
DB_PWD="123456"
DB_PORT="60012"
;;
2)
DB_HOST="192.168.0.22"
DB_USER="root"
DB_PWD="123456"
DB_PORT="60010" ;;
3)
DB_HOST="192.168.0.20"
DB_USER="root"
DB_PWD="123456"
DB_PORT="60009"
;;
esac
OPER_FLG=$1;
DB_NAME=$2;
DATE=`date +'%Y%m%d'`
PARM_LEN=$#
if [ $# -lt 3 ];then
echo "Use:$0 备份/恢复标志[0-备份,1-恢复] 数据库名 表1 表2 表3 ..."
exit -1
fi
#备份表存放目录
BACK_DIR=~/sql/${DATE}
if [ ! -d ${BACK_DIR} ];then
mkdir -p ${BACK_DIR}
fi
j=0
table_arry=()
for((i=0;i<${PARM_LEN};i++))
do
if [ $i -lt 2 ];then
shift continue
fi
table_arry[j]=$1
j=$(($j+1))
shift
done
ARRY_LEN=${#table_arry[@]}
for((i=0;i<${ARRY_LEN};i++))
do
if [ ${OPER_FLG} -eq 0 ];then
mysqldump -h${DB_HOST} -u${DB_USER} -p${DB_PWD} -P${DB_PORT} --set-gtid-purged=off ${DB_NAME} ${table_arry[i]} > ${BACK_DIR}/${table_arry[i]}.sql
elif [ ${OPER_FLG} -eq 1 ];then
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PWD} -P${DB_PORT} ${DB_NAME} -e "source ${BACK_DIR}/${table_arry[i]}.sql"
fi
done
mysql mysqldump备份表脚本
最新推荐文章于 2024-06-27 17:20:43 发布