zoukankan      html  css  js  c++  java
  • Python基于Python实现批量上传文件或目录到不同的Linux服务器

    基于Python实现批量上传文件或目录到不同的Linux服务器

     

    by:授客 QQ1033553122

     

    实现功能 1

    测试环境 1

    使用方法 1

    1 编辑配置文件conf/rootpath_for_doc.conf 1

    2 编辑配置文件conf/host_config.conf 2

    3 编辑配置文件conf/doc_for_upload.txt 3

    4 运行程序 4

    5 查看结果 4

    6 改进一点 5

    源码下载地址 5

     

    实现功能

    批量上传文件、目录(包括该目录下的所有文件,子目录及其文件)到不同的Linux服务器

     

    测试环境

    Win7 64

     

    Python 3.3.2

     

    pscp 64

    下载地址:

    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    网盘下载地址:

    https://pan.baidu.com/s/1qYFft4g

     

    使用方法

    1、编辑配置文件conf/rootpath_for_doc.conf

    [DOCROOTPATH]

    rootpath_for_doc = D:mysvn

     

    说明:

    rootpath_for_doc设置一个目录路径,作为配置文件所在跟目录,本文中以以下目录结构为例子

    D:mysvn

        └─myfolder

            │  SVNClient.py

            │

            ├─mydir

            │      newfile_test.txt

            │

            └─testdir

                    t.txt

     

    2、编辑配置文件conf/host_config.conf

    如下截图,配置需要上传文件、目录(包括)的服务器主机信息


     

    说明:

    [192.168.1.102] [需要上传文件的目标主机ip]

    host:需要上传文件的目标主机ip

    username:登录该主机的用户名

    hostkeyhostkey

    password:登录密码

    port:端口号

    remark:补充说明,比如该主机是作啥用的

     

    hostkey的或许方式如下:

    进入到项目文件中的pscp目录

    cd /d C:UserslaiyuPycharmProjectsautodeploypscp

     

    执行以下命令

    pscp.exe -v -P 22 -pw huozhe -r D:mysvn\myfolderSVNClient.py root@192.168.1.102:/root/testdir

    Connecting to 192.168.1.102 port 22

    ……()

    Host key fingerprint is:

    ssh-rsa 2048 c2:52:16:3f:24:37:b8:65:ec:9b:26:e5:04:e8:1d:a9

    The server's host key is not cached in the registry. You

    have no guarantee that the server is the computer you

    think it is.

    ……()

    如上图,带背景色,加粗部分的内容,就是hostkey

     

    选项说明:

    -P 22:端口

    -pw :登录密码

    D:mysvn\myfolderSVNClient.py:要上传至服务器的本地文件

    root@192.168.1.102:登陆服务器的用户名@服务器ip

    /root/testdir:要上传到服务器的目标目录

     

    3、编辑配置文件conf/conf/doc_for_upload.txt

    # 测试实例名(# 代表注释

    [192.168.1.102]

    myfolderSVNClient.py|/root/testdir

    myfolder            |                 /root/testdir

     

    # wx

    [10.202.94.176]

    #pullGit.bat      |    /home/appdeploy/

     

    [10.202.94.177]

    #Dir|/home/appdeploy/

     

    说明:

    [192.168.1.102]:要上传文件至目标主机ip

     

    myfolderSVNClient.py|/root/testdir相对于“根目录”的文件路径|需要上传到的服务器远程目录

     

    此处,根目录,即conf/rootpath_for_doc.conf中配置的跟目录rootpath_for_doc

     

    myfolder|/root/testdir相对于“根目录”的目录路径|需要上传到的服务器远程目录

     

    注意:目录路径、文件路径,与远程目录之间以 | 分隔,

     

    # 注释,注释会被程序自动忽略,可以用notepadultraEdit的列模式,批量编辑批量注释

     

    4、运行程序

    进入到项目跟目录

    cd /d C:UserslaiyuPycharmProjectsautodeploy

    python main.py

     

    5、查看结果

    uploadresult/result_for_upload_success.txt

     

    uploadresult/result_for_upload_failure.txt

     

    分别记录了运行成功和失败的文件信息

    6、改进一点

    建议写成批处理

    cd /d C:UserslaiyuPycharmProjectsautodeploy

    python main.py

    start C:UserslaiyuPycharmProjectsautodeployuploadresult/result_for_upload_success.txt

    start C:UserslaiyuPycharmProjectsautodeployuploadresult/uploadresult/result_for_upload_failure.txt

     

    源码下载地址

    https://pan.baidu.com/s/1dEJpwrf

     

    改进版(bug修复与改进)

    [授客]基于Python实现批量上传文件或目录到不同的Linux服务器20170718.zip

  • 相关阅读:
    递延收益
    企业收到政府补助的核算方法
    总额法
    发行股票手续费为什么冲减资本公积
    溢价发行
    融资筹资的区别是什么
    资本公积转增股本
    认股权证和股票期权有什么区别?
    postgresql 锁表查询语句
    生成不带版本的jar包 不影响deploy
  • 原文地址:https://www.cnblogs.com/shouke/p/10157568.html
Copyright © 2011-2022 走看看