wiindows下資料庫文件使用腳本同步到linux下的mysql資料庫中

来源:https://www.cnblogs.com/scumbag/archive/2018/08/15/9481021.html
-Advertisement-
Play Games

1.背景 windows server 2008 下 每天會有 *.sql數據文件 需要上傳到linux 中的mysql資料庫中 而運維人員是在 windows server 下使用 xshell 連接 linux 下進行導入導出來進行操作 客戶要求:1.點擊桌面上的程式達成 上傳到linux下的m ...


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 [email protected]

 

但是我們的最終目的是什麼???

 

在windows 下運行 shell 腳本 同步資料庫

putty.exe -m 腳本

putty.exe -ssh -pw 123789456 -m 腳本名字 [email protected]

這樣就可以 在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 goto guanbi
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% ^</LT/data/*.sql >>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來做

轉載請標註

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 指令: bootm bootm 用於將內核鏡像載入到記憶體的指定地址處 例: bootm 0x82000000 查看和修改環境變數指令 常用環境變數列表 bootdelay 執行自動啟動(bootcmd中的命令)的等候秒數 baudrate 串口控制台的波特率 bootfile 預設的下載文件名 bo ...
  • 該文章為博主原創,如若轉載請註明出處:https://www.cnblogs.com/fengleixue/p/9482202.html 因公司業務需要需使用kaldi語音識別工具,現將kaldi環境配置等步驟列出來,用於記錄: 1.安裝虛擬機: 下載虛擬機VMware,並安裝,虛擬機安裝比較簡單, ...
  • 首先,咱們需要模擬一下環境,下圖 使用VMware為我添加一塊300G(實際200M~~手動滑稽 -_-)的硬碟設備。 按照步驟一步一步添加就好。添加完成後需要重啟你的虛擬機,方能生效。 OK,那麼咱們的環境就有了。我已經為咱們的“伺服器”安裝了個300G(200M)的硬碟了,現在咱們把它掛載到 / ...
  • ELK分散式框架作為現在大數據時代分析日誌的常為大家使用。現在我們就記錄下單機Centos7部署ELK的過程和遇到的問題。 系統要求:Centos7(內核3.5及以上,2核4G) elk版本:6.2.4(較新版本) jdk版本:1.8(必須為java1.8版本) 一、下載需要軟體 1、ELK下載地址 ...
  • 好系統重裝助手告訴您如何確定Windows PC上的硬碟是SSD(固態硬碟)還是HDD(硬碟驅動器)。 識別固態硬碟還是機械硬碟 按 Win+S。這將打開Windows搜索欄。 輸入optimize。將出現匹配結果列表。 單擊“ 碎片整理和優化驅動器”。它應該是第一個搜索結果。這將打開Optimiz ...
  • 實驗說明: 很多人說Linux很難用,很難上手,其實不然,倘若不玩游戲,其實很多發行版Linux都可以成為主力系統,就比如本章要講的 Fedora 28。本章會從鏡像來源、系統安裝、基礎配置和常用軟體安裝等方面進行講解。 實驗環境: 宿主機系統 :Fedora 28 WorkStation 虛擬機管 ...
  • PDF文檔難編輯的特性,是大家在學習工作中比較頭疼的問題;處理PDF文件,通常都比較棘手,尤其是當一個不懂PDF這個特性的Boss,突然發來一個PDF格式的幻燈片,要求修改其中的某個數據,明天就要給到他。這時候,你打算按照原版樣式加班給他排一個PPT出來?那不如跟小編一起來學習線上PDF轉PPT的辦 ...
  • 很多小伙伴不會使用好系統重裝助手給愛機裝系統,一旦電腦出現了問題,還要去電腦店花錢請人來裝,這樣不僅費錢還麻煩,今天小編就帶大家來學習一下如何使用好系統重裝助手給華碩筆記本一鍵重裝系統 使用好系統重裝助手給華碩筆記本安裝系統 首頁我們打開好系統重裝助手官網https://hzhushou.com下載 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...