#date 2020.2.20

#author zhang

#描述 用户自己选择使用什么工具进行备份

#$1 账户; $2 密码 $3 地址

stty erase "^H"

[ -f /etc/init.d/functions ] && . /etc/init.d/functions

#备份文件夹路径

backup_path="/usr/local/src/backup_mysql"

[ -d $backup_path ] && echo "$backup_path is exist" || mkdir -p $backup_path

# mysqldump

fun_mysqldump(){

mysqldump_cmd="mysqldump"

if [ "$passwd" != "null" ];then

${mysqldump_cmd} -u$user -p$passwd -h$host -A -F -E -R --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob > $backup_path/$backup_file

else

${mysqldump_cmd} -u$user -h$host -A -F -E -R --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob > $backup_path/$backup_file

fi

[ $? -eq 0 ] && action " backup successful ,please cat \n $backup_path\/$backup_file" /bin/true || action "mysql backup is failed " /bin/false

exit 0

}

test_connect_mysql(){

if [ "$2" != "null" ];then

if `mysql -u"$1" -p"$2" -h"$3" -e "show databases;" &> /dev/null`;then

user=$1

passwd=$2

host=$3

else

echo "connection is lose,please check user,passd or host" && exit 3

fi

else

if `mysql -u "$1" -h"$3" -e "show databases;" &>/dev/null`;then

user=$1

host=$3

else

echo "connection is lose, check your user or host" && exit 3

fi

fi

}

#设置 $1 $2 $3

set_user_pass_host(){

[ "$1" != "" ] && user=$user || user="root";

[ "$2" != "" ] && passwd=$passwd || passwd="null";

[ "$3" != "" ] && host=$host || host="127.0.0.1";

}

input_user_pass_host(){

read -p "input the user:" user

read -p "input the passwd:" passwd

read -p "input host(default 127.0.0.1):" host

}

#xtrabackup

fun_xtrabackup(){

[ ! -e `whereis xtrabackup &> /dev/null` ] && yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y;yum install percona-xtrabackup -y &> /dev/null

if [ "$passwd" != "null" ];then

xtrabackup --user=$1 --password=$2 --host=$3 --backup --target-dir=$4 &> /dev/null

else

xtrabackup --user=$1 --host=$3 --backup --target-dir=$4 &> /dev/null

fi

[ $? -eq 0 ] && action "xtrabackup completed OK!" /bin/true || action "xtrabackup completed failed" /bin/false

exit

}

while true

do

cat << EOF

please input a number choose backup tools

1 mysqldump

2 xtrabackup

3 quit

EOF

read -p "you select:" select_id

case $select_id in

1)

input_user_pass_host

set_user_pass_host $user $passwd $host

if test_connect_mysql $user $passwd $host;then

read -p "please input mysql backup file name (default backup.all.sql):" backup_file

if [ "$backup_file" = "" ] ;then

backup_file="backup.all.sql"

fi

fun_mysqldump $user $passwd $host $backup_path/$backup_file

fi

;;

2)

input_user_pass_host

set_user_pass_host $user $passwd $host

if test_connect_mysql $user $passwd $host;then

read -p "please input target-dir (default $backup_path/):" target_dir

if [ "$target_dir" = "" ];then

fun_xtrabackup $user $passwd $host $backup_path

else

mkdir $target_dir -p

fun_xtrabackup $user $passwd $host $target_dir

fi

fi

;;

3)

echo "exit" && exit 6

;;

*)

echo "is error" && exit 7

;;

esac

done

linux mysql 备份脚本_linux 之mysql备份脚本相关推荐

  1. linux mysql 备份脚本_linux下mysql备份脚本

    #!/bin/bash #功能说明:本功能用于备份 #编写日期:2018/07/05 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/lo ...

  2. datetime报错 sql脚本_Linux中Mysql数据库备份shell脚本编写实例

    学了段时间的Linux,也学习了shell脚本编写的基本命令与语法,现做一个综合案例来详细讲解. 要求:1).每天凌晨备份数据库shaoxiao到/data/backup/db中 2).备份开始和备份 ...

  3. centos mysql gz恢复_Linux下mysql备份 恢复

    数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 MySQLl提供了一个mysqldump命令,我们可以用它进 ...

  4. linux mysql 装哪里_linux 下 mysql 安装目录在哪里

    linux 下 mysql 安装目录在哪里.linux mysql 安装介绍: linux 服务器 RedHat 5.0.server. MySQL 版本: 下载地址链接:http://dev.mys ...

  5. linux与mysql的关系_linux系统mysql简介

    linux系统mysql初始 初级:1.mysql安装 中级:数据库管理员DBA 1) 用户管理 1.用户权限的管理 2.管理可以操作库和表 3.用户名 4.管理来源IP 5.用户的密码 grant ...

  6. linux mysql dump命令_linux下mysql命令

    1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mys ...

  7. linux下数据库mysql命令大全_linux中mysql数据库操作命令大全有哪些

    Linux中经常会对数据库进行操作,除了在软件应用中操作,还能使用命令实现,具体有哪些命令呢?下面由学习啦小编为大家整理了linux重启mysql数据库命令的相关知识,希望对大家有帮助! linux中 ...

  8. linux下mysql目录结构_linux下mysql安装配置与目录结构

    本节内容: linux下mysql安装与配置.mysql目录结构. 1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rp ...

  9. linux上mysql卸数_Linux下MySQL卸载和安装图文教程

    Linux下MySQL卸载和安装图文教程 发布时间:2020-09-02 08:43:17 来源:脚本之家 阅读:59 作者:伊宇紫 第一次写博客,做了两年的开发,工作之余给自己找点有意义的事做,分享 ...

  10. linux重启下mysql数据库命令_linux重启mysql数据库命令

    Linux中难免会对数据库进行操作,下面由学习啦小编为大家整理了linux重启mysql数据库命令的相关知识,希望对大家有帮助! linux重启mysql数据库命令1.使用 service 启动 se ...

最新文章

  1. 架构演进之「微服务架构」
  2. WinCE 和Win Mobile的关系
  3. malloc函数具体解释
  4. 基于MATLAB的dijkstra算法及其应用
  5. 笔记-项目质量管理-七种基本质量工具
  6. 区分:AndroidDriver, iOSDriver, AppiumDriver and Remote WebDriver
  7. python生成随机骨料模型代码_Abaqus Python脚本-3D随机球形骨料的生成
  8. 使用Axios拦截器打印前端请求日志和后端后返回日志
  9. MFC 文档 视图 框架窗口间的关系 和消息传送规律
  10. python执行adb命令_Python脚本之ADB命令(一)
  11. 油气田开发之油气水井维护性修井作业
  12. 浏览器Browser截屏截长图使用记录220813
  13. excel图片根据表格内容动态变化
  14. 第五章 动态规划法(必做题)
  15. NKOJ 1361 帮帮吉米(Help Jimmy)
  16. 解决windows10 时间轴灰色的活动历史记录无法删除的问题
  17. 微信 checkbox修改样式
  18. webshell 提权
  19. openstack 逻辑构架真相
  20. H5端 调起WhatsApp选择联系人以及给固定联系人进行内容分享

热门文章

  1. mc有什么红石机器人_我的世界10月考试!来测测你的MC成绩吧~
  2. 华为鸿蒙系统正式登场,华为自研鸿蒙系统将于8月9日正式登场,还有全新的鸿鹄芯片...
  3. java setsize_Java Vector setSize()方法与示例
  4. 2万字长文包教包会 JVM 内存结构
  5. 万字详解Lambda、Stream和日期
  6. List 集合去重的 3 种方法
  7. C#调用Couchbase中的Memcached缓存
  8. Bootstrap 幻灯片效果
  9. C#调试WebService
  10. 动环监控系统接线图_机房动环监控系统报价