定时导出mysql本地数据替换远程数据库数据脚本分享

 更新时间:2014年03月13日 11:45:57   作者:  
这篇文章主要介绍了mysql每天定时倒出本地数据,替换远程数据库数据的脚本,需要的朋友可以参考下

复制代码 代码如下:

需求在每天的5点将192.168.3.5上ser_a库中的tb_a表导入到192.168.3.6上的ser_b库中,表名还叫tb_a
服务端脚本/usr/shell_clubs/auto_sql/server.sh
#!/bin/sh
#code by scpman
/usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql
#get new sql
time=`date +%Y%m%d`
mysqldump -uroot -p123456 ser_a tb_a > /usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql
sleep 2
ssh -p10022 192.168.3.6 <<EEE
/usr/shell_clubs/auto_sql/client.sh
EEE
说明:服务端脚本会导出指定表,并通过公钥ssh到目标机器上,调用客户端脚本
客户端脚本/usr/shell_clubs/auto_sql/client.sh
#!/bin/sh
#code by scpman
#client.sh
time=`date +%Y%m%d`
/usr/bin/find /usr/shell_clubs/auto_sql/ -name "*.sql" -mtime +3|xargs rm #del old sql
/usr/local/bin/rsync -vzrtopgl --progress  root@192.168.3.5::all/usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql /usr/shell_clubs/auto_sql/;
counts=`ls -l /usr/shell_clubs/auto_sql/ | grep "$time" | awk '{print $NF}'|wc -l`
echo $counts
if [ "$counts" -eq 1 ]
then
echo sql:$counts
mysql -uroot -ptest123  <<FFF
use ser_b;
drop table tb_a;
FFF
mysql -uroot -ptest123 ser_b < /usr/shell_clubs/auto_sql/`date +%Y%m%d`_tb_a.sql --default-character-set=utf8
echo --------------done
else
        echo sql wrong
fi
说明:客户端脚本被调用时,会先删除当前路径下的旧sql记录,然后通过rsync将服务端导出的表,同步过来,并检查是否同步过来,如果同步成功,则清空现有旧tb_a,将新的tb_a导入进库,如果没同步成功,则脚本退出(此处可以先发个邮件通知再退出)
然后流程通了
现在再加一条定时在192.168.3.5上(server端)
##send sql to 192.168.3.6
0 5 * * * su - root -c "/usr/shell_clubs/auto_sql/server.sh" >>/usr/shell_clubs/auto_sql/res.log

相关文章

  • Shell编程中Shift的用法小结

    Shell编程中Shift的用法小结

    本文给大家分享Shell编程中Shift的用法小结,文末文给大家扩展介绍Shell grep 命令扩展增强问题分析,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • nagios 分发文件实现代码

    nagios 分发文件实现代码

    这篇文章主要介绍了nagios 分发文件实现代码,需要的朋友可以参考下
    2014-09-09
  • Linux链接命令的实例详解

    Linux链接命令的实例详解

    这篇文章主要介绍了Linux链接命令的实例详解的相关资料,希望通过本文大家能掌握Linux链接命令的使用方法,需要的朋友可以参考下
    2017-08-08
  • shell字符串操作详解

    shell字符串操作详解

    这篇文章主要介绍了shell字符串操作详解的相关资料,需要的朋友可以参考下
    2014-02-02
  • Git中需要熟记的命令小结

    Git中需要熟记的命令小结

    这篇文章总结了Git中必须记住的一些命令,,合理使用这些命令可以大大提升应用Git的效率。有需要的可以参考学习。
    2016-08-08
  • 在shell脚本中激活conda虚拟环境的方法总结

    在shell脚本中激活conda虚拟环境的方法总结

    在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理,下面这篇文章主要给大家介绍了关于如何在shell脚本中激活conda虚拟环境的相关资料,需要的朋友可以参考下
    2022-08-08
  • shell脚本编写的俄罗斯方块游戏代码

    shell脚本编写的俄罗斯方块游戏代码

    这篇文章主要介绍了shell脚本编写的俄罗斯方块游戏代码,非常强大,需要的朋友可以参考下
    2014-04-04
  • ./ 和 sh 的使用区别详解

    ./ 和 sh 的使用区别详解

    这篇文章主要介绍了./ 和 sh 的使用区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 浅析Linux打包压缩解压缩命令大全(收藏)

    浅析Linux打包压缩解压缩命令大全(收藏)

    本文给大家分享Linux打包压缩解压缩命令大全,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-09-09
  • Linux 编程之进程fork()详解及实例

    Linux 编程之进程fork()详解及实例

    这篇文章主要介绍了Linux 编程之进程fork()详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论