首页 > 数据库 >mysql dump 拉取远程数据同步到本地库的shell 脚本

mysql dump 拉取远程数据同步到本地库的shell 脚本

时间:2024-06-17 09:34:37浏览次数:26  
标签:shell REMOTE NAME dump 备份 DB 拉取 FILE LOCAL

#!/bin/bash

# 远程MySQL连接信息
REMOTE_HOST="8.8.11.100"
REMOTE_USERNAME="root"
REMOTE_PASSWORD="Yaya@1972"

# 本地MySQL连接信息
LOCAL_HOST="8.8.9.248"  # 或者 "localhost"
LOCAL_USERNAME="root"
LOCAL_PASSWORD="root"

# 要备份并同步的数据库列表
DATABASES=("alpha_erp""bamboo""bi_system""open_api""pdm""public_service""seata""ums""wms""xxl_job")

# 备份目录
BACKUP_DIR="/usr/backup/mysql"

# 同步目录(可选,用于存储临时SQL文件)
SYNC_DIR="/tmp/mysql_sync"
mkdir -p "$SYNC_DIR"

# 循环备份并同步每个数据库
for DB_NAME in "${DATABASES[@]}"
do
    # 创建备份文件名
    TIMESTAMP=$(date "+%Y%m%d_%H%M%S")
    REMOTE_BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql"
    LOCAL_SYNC_FILE="$SYNC_DIR/$DB_NAME.sql"

    # 使用 mysqldump 命令备份远程数据库
    mysqldump -h $REMOTE_HOST -u $REMOTE_USERNAME -p$REMOTE_PASSWORD $DB_NAME > $REMOTE_BACKUP_FILE

    # 检查备份是否成功
    if [ $? -eq 0 ]; then
        echo "备份 $DB_NAME 成功: $REMOTE_BACKUP_FILE"

        # 复制备份文件到同步目录(可选,如果备份和同步在同一台机器上)
        cp $REMOTE_BACKUP_FILE $LOCAL_SYNC_FILE

        # 检查本地数据库是否存在,如果不存在则创建
        mysql -h $LOCAL_HOST -u $LOCAL_USERNAME -p$LOCAL_PASSWORD -e "SHOW DATABASES LIKE '$DB_NAME';" | grep -q "$DB_NAME"
        if [ $? -ne 0 ]; then
            echo "数据库 $DB_NAME 在本地不存在,正在创建..."
            mysql -h $LOCAL_HOST -u $LOCAL_USERNAME -p$LOCAL_PASSWORD -e "CREATE DATABASE $DB_NAME;"
        fi

        # 导入备份到本地数据库
        mysql -h $LOCAL_HOST -u $LOCAL_USERNAME -p$LOCAL_PASSWORD $DB_NAME < $LOCAL_SYNC_FILE

        if [ $? -eq 0 ]; then
            echo "同步 $DB_NAME 到本地成功"
        else
            echo "同步 $DB_NAME 到本地失败"
        fi
    else
        echo "备份 $DB_NAME 失败"
    fi
done

 

标签:shell,REMOTE,NAME,dump,备份,DB,拉取,FILE,LOCAL
From: https://www.cnblogs.com/liran123/p/18251739

相关文章

  • shell脚本--基础版本
    一、shell脚本脚本就是可以运行的代码的集合,脚本语言(计算机语言)**脚本的特点:**从上到下,按行执行。Python脚本语言,格式更严谨,严格的执行锁进。也是从上到下按行执行。shell脚本就是在shell环境(/bin/bash)bash就是shell的解释器。Linux环境下的编程语句。学习shell脚本的......
  • Linux 系统下工作中常用的shell命令
    目录ls:列出目录内容cd:改变当前工作目录pwd:显示当前工作目录的路径cp:复制文件或目录mv:移动文件或目录rm:删除文件或目录mkdir:创建新目录touch:创建空文件cat:连接文件并打印到标准输出设备上grep:在文件中查找模式find:在文件系统中查找文件这些命令是非常常用的,每个命令......
  • 最新下载:Xmanager&XShell【软件附加安装教程】
    ​XManager企业版是一款完整的企业网络连接套件,它配备了一个高性能的PC服务器,安全终端模拟器,是一个一体化的解决方案,将xmanager,xshell,xftp,xlpd,Xbrowser及xstart放置在一个软件包内,用户购买一款软件就能获得八款软件的用户体验。支持OpenGL硬件加速:Xmanager5支持OpenGL硬件加......
  • Mac 终端执行 shell 脚本
    Mac终端执行shell脚本样本:test.sh#!/bin/zshechotest创建的文件默认是没有执行权限的ls-ltest.sh=>-rw-r--r--1panminxiangstaff2261519:18test.sh添加执行权限chmodu+xtest.shls-ltest.sh=>-rwxr--r--1panminxiangstaff2261519:18test......
  • webshell获取总结(cms获取方法、非cms获取方法、中间件拿Webshell方法)
    目录前期准备:1、cookices靶场网站搭建: 2、dedecms靶场环境搭建:获取Webshell方法总结:一、CMS获取Webshell方法 二、非CMS获取Webshell方法1、数据库备份获取Webshell例如:2、抓包上传获取Webshell3、Sql命令获取Webshell例如:4、模板修改获取Webshell例如:5、插入......
  • Mac 修改默认 shell
    Mac修改默认shellMac自macOSCatalina开始默认shell由原来的Bash改为zsh查看MacOS系统版本:https://support.apple.com/zh-cn/109033查看系统自带所有shell$cat/etc/shells#Listofacceptableshellsforchpass(1).#Ftpdwillnotallowuserstoconn......
  • Linux Shell基础命令
    pwd功能:显示当前目录的绝对地址cd功能:切换目录绝对路径:以/为起点,遍历到子目录相对路径:以当前目录为起点,遍历到子目录常用目录:.当前目录..上层目录-上次操作所在路径~相当于/home/用户名的路径示例用途:cd/home/linux/Desktop#绝对路径的用法cd/home/......
  • jmeter中beanshell处理器
    Jmeter工具中存在BeanShell取样器,BeanShell预处理程序,BeanShell后置处理程序,那么这次详细整理下BeanShell在JMeter的作用以及案例。beanshell是什么:BeanShell是一个小型嵌入式Java源代码解释器,能够动态地执行java代码,不需要提前编译JMeter在它的BeanShell中内置了变量,用户......
  • shell编程规范与变量
    shell脚本的概念将要执行的命令按顺序保存到一个文本文件给该文件可执行权限可结合各种shell控制语句以完成更复杂的操作shell脚本应用场景重复性操作交互性任务批量事务处理服务运行状态监控定时执行任务shell的作用介于系统内核与用户之间,负责解释命令行    ......
  • Windows: 使用PowerShell管理Hyper-V虚拟机
    Hyper-V是Windows操作系统中强大的虚拟化平台,通过Hyper-V,用户可以创建和管理虚拟机(VM)。作为计算机专业人士,我们可能更倾向于使用命令行工具来高效地管理系统。在Windows上,PowerShell是一个功能强大的命令行工具,可以用来管理Hyper-V虚拟机。本文将详细介绍如何使用PowerShell......