1.背景

windows server 2008 下 每天会有 *.sql数据文件

需要上传到linux 中的mysql数据库中

而运维人员是在 windows server 下使用 xshell 连接 linux 下进行导入导出来进行操作

客户要求:1.点击桌面上的程序达成 上传到linux下的mysql数据库中。

2.要解决的问题

1.通过什么来让数据文件 上传到 linux 下

2.怎么才可以点击一下就达成 window下的数据文件 上传到linux下

3.数据文件到达后 怎么做才可以 在window下 让数据同步到数据库中

1.解决第一个问题

1.通过什么来让数据文件 上传到 linux 下

可用方法 FTP samba NFS 文件共享服务

因为问题2 要在window下实行 优先想到 使用ftp 因为 ftp在windows 下可以通过cmd 直接执行

2.解决第二个问题

怎么才可以点击一下就达成 window下的数据文件 上传到linux下

问题一、如何才可以 把windows下的数据文件上传到ftp上呢???

问题二、我怎么才可以点击一下就可以完成这样的操作呢

我想到了windows下的批处理文件.bat

首先 ftp 客户端是windows下自带的

所以可以直接调用 但是我又需要在ftp下有这么多的操作怎么才可以呢

ftp -s脚本 可以把你在ftp的指令 直接写入文件中 而用-s 直接在ftp下运行

但是又有了一个新的问题

每次上传一个sql文件都要 yes 一下 ???

这个问题困扰了我很久

直到我发现了这个命令

交互模式:关闭

3.解决第三个问题

数据文件到达linux 怎么样才可以 在windows操作同步到数据库中呢???

首先 :在linux下如果同步到库中呢

mysql -uroot -p 库名 < 路径

就这一个指令 ,我完全可以在linux写的shell脚本中去运行

这样就解决了备份 但是 你怎么 在windows端下 进行操作呢

我首先想到了putty.exe

如果 可以在cmd 直接调用putty 我就直接可以写批处理文件 来达成我要做的事情

putty登录linux需要什么

ip地址 用户名 密码 端口 我怎么才可以把他们一起 启动呢

putty.exe -ssh -pw 123789456 root@192.168.91.59

但是我们的最终目的是什么???

在windows 下运行 shell 脚本 同步数据库

putty.exe -m 脚本

putty.exe -ssh -pw 123789456 -m 脚本名字 root@192.168.91.59

这样就可以 在windows 下运行 shell 脚本 同步 linux 数据库

下面放成品的代码 代码只是为了功能 完全可以再缩短很多

注意:将这个批处理 与putty.exe 放到有sql的文件夹下运行

@echo off

color 0a

cd /d %~dp0

if exist *.sql (goto next) else (goto baddir)

:next

@Echo Off

color 3E

set /p var=请输入你要配置的IP地址:

set /p pass=请输入root密码:

cls

title 阿姆斯特朗喷气式阿姆斯特朗上传同步工具(2018.4.21)

echo.【功能说明】

echo.通过FTP把当前目录下的.sql文件同步到目标mysql中

echo.一键搭建环境、一键上传、一键同步增加工作效率

echo.

echo.【特别提醒】

echo.1. 如果首次运行,获取秘钥请手动点击确定

echo.2. 工具使用顺序(1)(2)单独使用(2)会无效

echo.3. 需要保证yum源可以正常安装FTP服务

echo 4. window7下完美运行,win10下可能会出现putty启动慢

echo.5. sql文件默认存放在/LT/date下

echo.6. 同步完成默认放进/LT/lajixiang下 默认保存5天

echo.7. 如sql过大,上传时间长属于正常现象,请勿关闭

echo.8. 最终解释权为作者所有

echo. 如果当前服务器安装了FTP服务请谨慎使用 谨防数据丢失!!

echo.

echo.

:on

cd /d %~dp0

choice /c 1234 /m "请输入编号:(1)创建;(2)同步;(3)卸载;(4)关闭;

if %errorlevel%==4 gotoguanbi

if %errorlevel%==3 goto xiezai

if %errorlevel%==2 goto tongbu

if %errorlevel%==1 goto dajian

:dajian

@echo off

echo 搭建环境并上传......

echo ^#!/bin/bash^ >linux.sh

echo ^yum -y install vsftpd^ >>linux.sh

echo ^useradd -p 123789456 litong^ >>linux.sh

echo ^echo 'litong:123789456'^|chpasswd^ >>linux.sh

echo ^mkdir /LT/data -p^ >>linux.sh

echo ^mkdir /LT/lajixiang -p^ >>linux.sh

echo ^chmod 777 /LT/data^ >>linux.sh

echo ^chmod 777 /LT/lajixiang^ >>linux.sh

echo ^echo anonymous_enable=YES ^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo local_enable=YES ^>^> /etc/vsftpd/vsftpd.conf ^ >>linux.sh

echo ^echo write_enable=YES ^>^> /etc/vsftpd/vsftpd.conf ^ >>linux.sh

echo ^echo local_umask=022 ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo dirmessage_enable=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo xferlog_enable=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo connect_from_port_20=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo xferlog_std_format=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo listen=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo pam_service_name=vsftpd ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo userlist_enable=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo tcp_wrappers=YES ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo local_root=/LT/data ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo userlist_deny=NO ^>^> /etc/vsftpd/vsftpd.conf^ >>linux.sh

echo ^echo litong ^> /etc/vsftpd/user_list^ >>linux.sh

echo ^service iptables stop^ >>linux.sh

echo ^setenforce 0^ >>linux.sh

echo ^service vsftpd restart^ >>linux.sh

putty.exe -ssh -pw %pass% -m linux.sh root@%var%

del linux.sh

Echo open %var% >up

Echo litong>>up

Echo 123789456>>up

Echo prompt >>up

Echo mput *.sql>>up

Echo bye>>up

FTP -s:up

del up

echo 上传成功

goto on

:tongbu

pause

set /p zhanghu=数据库账户:

set /p mima=数据库密码:

set /p kuming=将要同步的库名:

del

echo 同步到数据库中......

echo #/bin/bash >peizhi.sh

echo mysql -u%zhanghu% -p%mima% %kuming% ^>peizhi.sh

echo mv /LT/data/*.sql /LT/lajixiang/ >>peizhi.sh

echo find /lt/lajixiang/*.sql -mtime +5 ^|xargs rm -rf >>peizhi.sh

putty.exe -ssh -pw %pass% -m peizhi.sh root@%var%

del peizhi.sh

echo 同步成功

goto on

:xiezai

echo 卸载环境中......

echo rm -r /LT >xiezaihuanjing.sh

echo userdel -r litong >>xiezaihuanjing.sh

echo yum -y remove vsftpd >>xiezaihuanjing.sh

putty.exe -ssh -pw %pass% -m xiezaihuanjing.sh root@%var%

del xiezaihuanjing.sh

echo 卸载成功

goto on

:baddir

echo.

echo 警告:请将本工具放在要上传的sql文件夹下再运行,否则将出现不可预料的后果!

echo.

echo (例:若sql文件在目录为【D:\date】,则将该工具放在【D:\date】目录下后再执行。)

echo.

pause

echo 退出脚本

exit

:guanbi

exit

以上脚本中有很多可以优化的地方 只是自己不愿在去弄了 有兴趣的可以 优化一下 比如 shell中的查找替换可以用sed来做

转载请标注

脚本同步mysql数据_windows下数据库文件使用脚本同步到linux下的mysql数据库中相关推荐

  1. php mysql 导出到excel,php mysql数据导出到excel文件

    这篇文章主要为大家详细介绍了php mysql数据导出到excel文件,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 经测试代码如下: /** * ...

  2. linux将文件夹树状列出,Linux下用tree命令列出树形图

    命令用法: tree 参数: -a 显示所有文件和目录. -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合. -C 在文件和目录清单加上色彩,便于区分各种类型. -d 显示目录名称而非内容 ...

  3. Qt基于QuaZIP实现文件压缩/解压(Linux下)

    Qt基于QuaZIP实现文件压缩/解压(Linux下) 一.工具准备 二.编译zlib 1.下载zlib源码 2.配置 3.编译与安装 三.编译QuaZIP 1.下载QuaZIP源码 2.将zlib库 ...

  4. linux手机 电脑传文件怎么安装,如何在 Linux 下安装安卓文件传输助手

    如果你尝试在 Ubuntu 下连接你的安卓手机,你也许可以试试 Linux 下的安卓文件传输助手. 本质上来说,这个应用是谷歌 macOS 版本的一个克隆.它是用 Qt 编写的,用户界面非常简洁,使得 ...

  5. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...

    linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找 ...

  6. 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?

    打开我们的命令行,输入 python ,我们会进入 python 的交互模式. 当我们想退出 python ,返回我们的 shell 时,你将如何退出? 如上,两个行之有效的方法是输入 exit() ...

  7. linux mysql复制一个表结构图_详解Windows和Linux下从数据库导出表结构,以及Linux下如何导入.sql文件到MySQL数据库...

    本文首先讲解window下如何使用Navicat for MySQL导出表. 1.如下图所示,目标数据库是mydatabase,数据库中有四张表. 2.选中该数据库,右键--数据传输. 3.左边可以选 ...

  8. mysql下 复制文件命令行_命令行下Mysql数据库复制、备份

    命令行下Mysql数据库复制.备份 在Win10下如果安装了Mysql,那么我们可以把远程Mysql服务器上的数据库备份到本地,前提是远程Mysql服务器允许远程接入. 假设远程Mysql服务器的访问 ...

  9. Mysql 数据库命令行导出导入sql脚本

    2019独角兽企业重金招聘Python工程师标准>>> 导出数据库中所有表的sql脚本(包含数据): 1.运行命令终端 cmd.exe 2.输入:mysqldump- uroot - ...

最新文章

  1. java length 使用方法 例题_java.util.BitSet.length()方法实例
  2. 解决Python开发过程中依赖库打包问题的方法
  3. Linux4.14加密框架中的主要数据结构(1)—— struct crypto_alg(通用算法)
  4. 解决Redis错误MISCONF Redis is configured to save RDB snapshots
  5. 团队项目搜查令更新二
  6. 极坐标梯度公式_一种基于极坐标系梯度变化的类圆环边缘检测方法与流程
  7. Unity UI框架的搭建
  8. 自动驾驶仿真软件简介----CARLAGazeboLGSVLOthers
  9. 连载:大学生求职七大昏招(十七)缺少职业素养(2)
  10. linux 游戏下载论坛,LINUX下的各种游戏
  11. Java实现给图片局部打马赛克
  12. 腾讯音乐知识图谱搜索实践
  13. JavaScript的继承,原型和原型链
  14. 南京研究所面试(中兴南研所、28所、北方信息)
  15. ios共享账号公众号_【IOS游戏账号共享】江湖霸图
  16. 自媒体人平台运营保姆级教程!速看!
  17. 【经济学】离岸人民币和在岸人民币
  18. 论文查重率太低了会怎么样?
  19. [python] 基于NetworkX实现网络图的绘制
  20. oracle 取上季末日期,怎么获取上上个季度最后一天日期

热门文章

  1. DM框架中CString/CStringW 转 double (c++通用)
  2. Spring 框架 AOP 的总结
  3. CentOS7在/etc/grub2.conf引导中配置1G大页内存
  4. OpenLTE 基站相关头文件:用户、定时器、基站接口、消息接口
  5. Linux的TUN/TAP编程
  6. Mpi与Cuda混合编程(Makefile)
  7. python路径设置方法,R不转义,以及r转义出错SyntaxError
  8. 计算机表格中如何计算数据透视表,在数据透视表中计算值
  9. Android工程的目录说明
  10. 使用java实现数字滤波器