winscp以命令行方式同步服務器數據到PC機磁盤上


目前服務器上每日會產生備份文件,需要使用winscp工具把備份同步到本地PC機硬盤上。平時都是圖形界面用鼠標點擊方式來同步的,效率低下,因此編寫了winscp自動同步腳本,並加入到計划任務中定時自動運行。

 

1.在linux服務器創建備份專用帳號:

chattr -i /etc/{passwd,shadow,group,gshadow} useradd bak_user echo '123456789' | passwd --stdin bak_user chattr +i /etc/{passwd,shadow,group,gshadow} su - bak_user exit

 

2.創建WINSCP同步腳本 c:\SERV_BAK.txt,該腳本用於同步數據到本地:option echo off

option batch continue option confirm off #無需確認直接操作 option transfer binary
option synchdelete
on #服務端如果沒有該文件,則將本地文件刪除 open sftp://bak_user:123456789@服務器IP:33302 #分別填入服務器帳號、密碼、IP、ssh端口 cd /backup/bitmore.com #進入要同步的目錄內,會將該目錄下所有子目錄和文件進行同步 lcd c:\bitmore.com #進入本地目標目錄,該目錄要事先建立好,否則文件會傳到winscp的程序目錄下。 synchronize local #相當於rsync,將有差異的數據由服務器端同步到本地。local:同步到本地。remote:同步到對端
#get mysql-bin.* #可同步指定類型的文件,#用於注釋 close
exit

 注:如果路徑名稱帶有中文,最好用notepad++修改腳本的編碼為UTF-8格式,否則可能同步失敗。

 

3.在windows端CMD窗口執行【適合一次性執行】

"D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=c:\SERV_BAK.txt      #以命令行方式同步數據

 

如果有多個服務器要同步,每個服務器最好單獨寫一個winscp腳本:


 

編寫 WINSCP-SERV-BAK.bat 批處理文件,將所有winscp腳本放在一起批量執行【推薦,適合大量服務器同步】

start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=c:\SERV_BAK.txt start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=c:\SERV_BAK02.txt start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=c:\SERV_BAK03.txt

以上命令會同時打開3個CMD窗口來執行。start:開啟新窗口,/min:最小化運行主窗口,/c:原窗口關閉

 

4.添加windows計划任務,讓同步操作定時自動完成:
運行——》taskschd.msc

 

搞定。下班后PC機保持開機即可。從此解放了雙手。


輸入help:
winscp> help
call     執行任意遠程Shell命令
cd       改變遠程工作目錄
chmod    改變遠程文件權限
close    關閉會話
exit     關閉所有會話並結束程序
get      從遠程目錄下載文件到本地目錄
help     顯示幫助
keepuptodate    在一個遠程目錄連續反映本地目錄的改變
lcd     改變本地工作目錄
lls     列出本地目錄的內容
ln      新建遠程符號鏈接
lpwd    顯示本地工作目錄
ls      列出遠程目錄的內容
mkdir    新建遠程目錄
mv      移動或者重命名遠程文件
open    連接到服務器
option    設置或顯示腳本選項的值
put    從本地目錄上傳文件到遠程目錄
pwd    顯示遠程工作目錄
rm     刪除遠程文件
rmdir    刪除遠程目錄
session    列出連接的會話或者選擇活動會話
synchronize    用一個本地目錄同步遠程目錄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM