Python 一键同步windows和linux数据(基于pscp.exe)

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 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 = 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 文件即可一键完成数据传输。

猜你喜欢

转载自www.cnblogs.com/bigtreei/p/9668268.html
今日推荐