Python 一鍵同步windows和linux數據(基於pscp.exe)
阿新 • • 發佈:2018-09-18
ati www rbo 文件的 使用幫助 linux 服務器 load putty session
outline
項目中需要把 windows server 上的數據同步到 linux server,方法很多,這裏記錄下自己采用的一種比較簡單的方法。
準備工作
首先確保你 windows server 上裝有 pscp.exe 。
下載地址:
可去PuTTY官方的下載頁中,找到PSCP,下載。
也可以直接下載 PuTTY 內置的就有 PSCP 了。
安裝之後進到 pscp.exe 所在目錄下,查看使用幫助:
# 基本用法: -p 拷貝文件的時候保留源文件建立的時間。 -q 執行文件拷貝時,不顯示任何提示消息。 -r 拷貝整個目錄基本用法-v 拷貝文件時,顯示提示信息。 Usage: pscp [options] [user@]host:source target pscp [options] source [source...] [user@]host pscp [options] -ls user@host:filespec 用法: pscp [選項] [用戶名@]主機:源文件 目標文件 pscp [選項] 源文件 [源文件……] [用戶名@]主機 pscp [選項]-ls 用戶名@主機:文件空間? Options: 選項: -p preserve file attributes 保護文件屬性 -q quiet, don‘t show statistics 安靜,不顯示統計 -r copy directories recursively 復制子文件夾 -V print version information and exit 顯示信息 -v show verbose messages -load sessname Load settings fromsaved session -load 加載,加載保存節的設定 -P port connect to specified port -P 端口,連接到指定空間端口 -l user connect with specified username -l 用戶,用指定的用戶連接空間 -pw passw login with specified password -pw 密碼,用指定的密碼登錄空間 -1/-2 強迫 ssh 使用的版本 -4 -6 force use of IPv4 or IPv6 -C 打開壓縮 -i key 鑰匙,證明用的鑰匙文件 -batch 關閉交互能力,也許 -unsafe 不安全,允許伺服端取代字符 (危險的)
代碼實現
import os def sync_data(cmd): os.system(cmd3) print(‘sync done‘) if __name__ == ‘__main__‘: cmd1 = r‘cd C:\Program Files\PuTTY‘ cmd2 = r‘pscp -pw **** -r D:\v-gazh\data\after_test\source [email protected]:/home/v-gazh/data/SCP_test‘ cmd3 = cmd1 + "&&" + cmd2 sync_data(cmd3) # 上述代碼實現的是,把windows server 指定目錄同步到 linux server 指定目錄下。 # cmd2 中 -pw 後面是要登陸的 linux 服務器密碼,替換成你自己打就ok # 註: windows 下 cmd 終端裏 執行兩個命令可用 “&&” 連接
補充
# windows server 指定文件傳輸到Linxu服務器指定目錄中。 基本命令格式:pscp 文件 用戶名@LinuxIP:目錄 # “ -l ”選項可以指定用戶名。 基本命令格式:pscp -l 用戶名 文件 LinuxIP:目錄 # “ -r ”選項用於傳輸目錄。 基本命令格式:pscp -r 目錄 用戶名@LinuxIP:目錄 或使用命令格式:pscp -l 用戶名 -r 目錄 LinuxIP:目錄
參數設置好後,只需要運行上面 py 文件即可一鍵完成數據傳輸。
Python 一鍵同步windows和linux數據(基於pscp.exe)