基于Python实现批量从不同的Linux服务器下载文件

 

by:授客 QQ:1033553122

实现功能 1

测试环境 1

使用方法 1

1、 编辑配置文件conf/file_for_download.txt 1

2、 编辑配置文件conf/download.conf 1

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

4、 运行程序 3

5、 查看结果 3

源码下载地址 4

 

实现功能

批量从不同的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/file_for_download.txt

# 测试实例名(# 代表注释
[192.168.1.103]
/home/MariaDB-10.0.19-centos7-x86_64-test.rpm

[192.168.1.102]
/home/testacc/testfile

说明:

[192.168.1.103]:要下载目标文件所在的主机ip

/home/MariaDB-10.0.19-centos7-x86_64-test.rpm:要下载的目标文件路径--相对于“根目录”的文件绝对路径,,每一行代表一个文件路径

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

[STORAGE]
dirpath_for_storage
=  d:\pkgdir
dirpath_for_storage_bak
= d:\svn\mybak

[TARGET]
MariaDB-10.0.19-centos7-x86_64-test.rpm

#MariaDB-10.0.19-centos7-x86-test.rpm

说明:

dirpath_for_storage设置一个目录路径,作为下载文件的存储路径

dirpath_for_storage_bak
设置一个目录路径,存储上次下载的文件(再次执行下载之前会把dirpath_for_storage目录下的文件复制到dirpath_for_storage_bak,然后删除dirpath_for_storage下的文件)

MariaDB-10.0.19-centos7-x86_64-test.rpm 要下载的文件名称,每一行代表一个文件路径

# 表示注释,不会被程序读取

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

如下截图,配置需要下载文件所在的服务器主机信息

 

说明:

[192.168.1.102]: [需要下载文件所在的目标主机ip]

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

username:登录该主机的用户名

hostkey:hostkey

password:登录密码

port:端口号

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

hostkey的获取方式如下:

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

cd autodeploy20171102\pscp

执行以下命令

pscp.exe -v -P 22 -pw huo

zhe
root@192.168.1.103:/home/MariaDB-10.0.19-centos7-x86_64-test.rpm
d:\pkgdir

Connecting to 192.168.1.103 port 22

(略)

Host key fingerprint is:

ssh-ed25519 256
06:e4:dd:e2:99:a9:46:c7:b2:b5:c9:97:37:a6:89:dd

(略)

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

选项说明:

-P 22:端口

-pw :登录密码

/home/MariaDB-10.0.19-centos7-x86_64-test.rpm:要下载的远程文件

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

d:\pkgdir:存储下载文件的目标路径

注意:一个文件要能被正常下载,必须满足三个条件:


conf/file_for_download.txt配置了该文件所在远程主机和绝对路径


conf/download.conf
        TARGET节点下,配置了该文件名,且非注释


conf/host_config.conf
     配置了要下载文件所在主机节点信息

4、运行程序

进入到项目跟目录

cd /d autodeploy20171102

python main.py

5、查看结果

result/result_for_success.txt

result/result_for_failure.txt

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

源码下载地址

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

Python 实现批量从不同的Linux服务器下载文件的更多相关文章

  1. 从Linux服务器下载文件到本地命令

    从Linux服务器下载文件夹到本地1.使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件 ...

  2. 从Linux服务器下载文件夹到本地

    从Linux服务器下载文件夹到本地 1.使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文 ...

  3. 通过Xshell如何从Linux服务器下载文件(亲测可行)

    到网上下载lrzsz安装包,这里以lrzsz-0.12.20.tar.gz为例 2 打开终端 cd 到安装包所在目录 tar zxvf lrzsz-0.12.20.tar.gz 解压安装包 3 进入解 ...

  4. 如何使用命令从linux服务器下载文件到windows

    1.直接使用命令从linux下载文件到windows //登录linux服务器导出mysql数据 mysqldump -hrm-2ze8mpi5i65429l1q.mysql.rds.aliyuncs ...

  5. 从Linux服务器下载文件到本地

    通过安装xshell,连接服务器,通过以下命令可以方便的将服务器的文件下载到本地 #下载一个文件 sz filename #下载多个文件 sz filename1 filename2 #下载dir目录 ...

  6. SCP:从Linux服务器下载文件夹到本地

    原文链接:https://blog.csdn.net/netlai/article/details/79756279 scp /home/work/source.txt work@192.168.0. ...

  7. scp实现mac与linux服务器之间文件传输

    1.mac上传文件到linux服务器 scp 文件名 用户名@服务器ip:目标路径如:scp /Users/test/testFile test@xxx.xxx.xxx.xxx:/test/ 2.ma ...

  8. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  9. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)

    本文转自博客:https://blog.csdn.net/black_3717/article/details/79769406 问题背景: 之前给客户部署我们一款EasyDSS云平台(配合EasyN ...

随机推荐

  1. vim常用命令行备忘总结

    一 窗口切换 1 :sp    水平切换当前窗口 2 :vsp 垂直切换当前窗口 3 :clo 关闭活动窗口 4 : on 只保留活动窗口 5 : ctrl + w  在窗口间循环切换  ctrl + ...

  2. H5在WebView上开发小结

    背景 来自我司业务方要求,需开发一款APP.但由于时间限制,只能采取套壳app方式,即原生app内嵌webview展示前端页面.本文主要记述JavaScript与原生app间通信,以及内嵌webvie ...

  3. "i=i++"在java等高级语言的解释

    前言 最近学习我在的团队招人,面试.我出了一道c的题. int main(){ ; i+=++i; printf("%d",i); } 别喷!今晚学长们说,java,c#中完全不同 ...

  4. [NewLife.XCode]高级查询(化繁为简、分页提升性能)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

  5. 【原创】Python第二章——标识符命名规则

    在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3...),字符串数据类型("ABC").想要使用这些对象,就要使用它的对象引用.赋值操作符,实际上是使得 ...

  6. 2.Magicodes.NET框架之路——策略管理

    闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则 ...

  7. 分享一个爬取HUST(哈理工)学生成绩的Python程序(OCR自动识别验证码)

    Python版本:3.5.2 日期:2018/1/21 __Author__ = "Lance#" # -*- coding = utf-8 -*- from urllib imp ...

  8. Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken

    Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...

  9. nginx实现动态/静态文件缓存(week4_day1_part2)-技术流ken

    nginx实现静态文件缓存实战 1.nginx静态文件缓存 如果要熟练使用nginx来实现文件的缓存,那下面的几个指令你必须要牢记于心 指令1:proxy_cache_path 作用:设置缓存数据的相 ...

  10. python抓取电影<海王>影评词云生成

    海王是前段时间大热的影片,个人对这种动漫题材的电影并不是很感兴趣.然鹅,最近这部电影实在太热了,正好最近看自然语言处理的时候,无意间发现了word cloud这个生成词云的库,还蛮好玩的,那就抓抓这部 ...