• 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 FilesPuTTY'
        cmd2 = r'pscp -pw **** -r D:v-gazhdataafter_testsource v-gazh@10.150.144.153:/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 文件即可一键完成数据传输。

  • 相关阅读:
    开源工作流Fireflow源码分析之运行流程二
    沿线批量内插点对象
    shapefile数据无法正常浏览的问题
    InMemeryWorkspace的效率测试结果
    Oracle数据库SQL语句性能调整的基本原则[转存]
    <转>arcgis server部署 自己安装的体会
    AO中保存二进制大对象(BLOB)
    How to create new geodatabases
    使用C#向Excel中写数据
    oracle数据库的sde数据文件迁移操作方法
  • 原文地址:https://www.cnblogs.com/bigtreei/p/9668268.html
Copyright © 2020-2023  润新知