1. 程式人生 > >Python 一鍵同步windows和linux數據(基於pscp.exe)

Python 一鍵同步windows和linux數據(基於pscp.exe)

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, dont show statistics 安靜,不顯示統計 -r copy directories recursively 復制子文件夾 -V print version information and exit 顯示信息 -v show verbose messages -load sessname Load settings from
saved 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 = rcd C:\Program Files\PuTTY
    cmd2 = rpscp -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)