mysql mysqldump备份表脚本

#!/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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值