mysql 交互备份脚本

#!/bin/sh


#使用环境变量
###################
. /etc/profile
. ~/.bash_profile
##################


########数据库备份脚本###########
function mysqlbackup()
{
        bakname="$path/`hostname`-$db-`date +%Y%m%d%H%M%S`.sql"
        mysqldump -u$user -p$pass  $db > $bakname
        if [ ! -f $bakname ];then
                echo "备份失败"
        else
                echo "备份成功,文件路径为$bakname"
        fi


}






read -p "输入用户名:"
user=$REPLY
read -p  "输入密码:"
pass=$REPLY


check_auth=`mysql -u$user -p$pass  -e "show databases;" | grep -v Database`


if [ "$check_auth" = "" ];then
                echo "用户名或者密码错误"
                exit 0
fi


all_db=`mysql -u$user -p$pass -e "show databases;" | grep -v Database | awk '{print NR"."$1}'`


read -p  "输入备份的数据库(默认为全备份):
$all_db
输入(数据库名称):"
db=$REPLY


if [ "$db" != "" ];then

      check_db=`mysql -u$user -p$pass -e "show databases;" | grep $db`


        if [ "$check_db" = "" ];then
                        echo "$db数据库不存在"
                        exit 0
                else
                        echo "备份的数据库:$db"
        fi
else


        db="--all-database"
        echo "备份的数据库:$db"
fi


read -p  "输入备份路径(默认为/tmp):"
path=$REPLY


if [ "$path" != "" ];then


        if [ ! -d "$path" ];then
                        echo "$path路径不存在"
                        exit 0
                else
                        echo "备份路径(默认为/tmp):$path"
        fi
else
        path="/tmp"
        echo "备份路径(默认为/tmp):/tmp"


fi


echo  "确定备份信息:
        用户名:$user 密码:$pass 数据库:$db 备份路径:$path"
read -p "是否开始备份(输入Y OR N):"
check=$REPLY


if [[ "$check" != "Y" ]] && [[ "$check" != "y" ]] ;then
                echo "备份退出。。。"
        else
                echo "开始备份。。。"   
                mysqlbackup;


fi
                                    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金桔数科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值