亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python通過(guò)paramiko從遠(yuǎn)處服務(wù)器下載文件資源到本地

Anonymous1 / 2884人閱讀

為什么要用Python腳本下載以及基本介紹

經(jīng)常會(huì)有人需要從遠(yuǎn)程服務(wù)器下載一些文件資源,下載個(gè)別小文件可以直接用sz等命令,但是,需要下載一個(gè)文件夾呢?sz就不行了,這時(shí)候當(dāng)然可以先壓縮文件夾,然后下載,這樣也是可以的,只要文件不是很大,那么,有沒(méi)有其他辦法下載文件夾呢?辦法當(dāng)然是有的,就是寫Python腳本,然后通過(guò)paramiko模塊就可以從遠(yuǎn)程傳輸下載文件夾到本地了,是不是很方便呢……

paramiko模塊提供了ssh及sftp進(jìn)行遠(yuǎn)程登錄服務(wù)器執(zhí)行命令和上傳下載文件的功能。這是一個(gè)第三方的軟件包,使用之前需要先進(jìn)行安裝,我們這里主要利用sftp進(jìn)行下載傳輸文件

就像下圖中的運(yùn)行,可以一個(gè)一個(gè)的循環(huán)下載文件

使用時(shí)候的基本配置

下面的這些信息需要自己配置一下,即初始化一些參數(shù),包括服務(wù)器信息以及遠(yuǎn)程文件和本地文件的存放路徑配置

# 服務(wù)器連接信息
host_name = "172.0.0.1"
user_name = "root"
password = "root"
port = 22
# 遠(yuǎn)程文件路徑(需要絕對(duì)路徑)
remote_dir = "/data/nfs/zdlh/pdf/2018/07/31"
# 本地文件存放路徑(絕對(duì)路徑或者相對(duì)路徑都可以)
local_dir = "file_download/"
實(shí)現(xiàn)源碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
通過(guò)paramiko從遠(yuǎn)處服務(wù)器下載文件資源到本地
author: gxcuizy
time: 2018-08-01
"""

import paramiko
import os
from stat import S_ISDIR as isdir


def down_from_remote(sftp_obj, remote_dir_name, local_dir_name):
    """遠(yuǎn)程下載文件"""
    remote_file = sftp_obj.stat(remote_dir_name)
    if isdir(remote_file.st_mode):
        # 文件夾,不能直接下載,需要繼續(xù)循環(huán)
        check_local_dir(local_dir_name)
        print("開始下載文件夾:" + remote_dir_name)
        for remote_file_name in sftp.listdir(remote_dir_name):
            sub_remote = os.path.join(remote_dir_name, remote_file_name)
            sub_remote = sub_remote.replace("", "/")
            sub_local = os.path.join(local_dir_name, remote_file_name)
            sub_local = sub_local.replace("", "/")
            down_from_remote(sftp_obj, sub_remote, sub_local)
    else:
        # 文件,直接下載
        print("開始下載文件:" + remote_dir_name)
        sftp.get(remote_dir_name, local_dir_name)


def check_local_dir(local_dir_name):
    """本地文件夾是否存在,不存在則創(chuàng)建"""
    if not os.path.exists(local_dir_name):
        os.makedirs(local_dir_name)


if __name__ == "__main__":
    """程序主入口"""
    # 服務(wù)器連接信息
    host_name = "172.17.2.18"
    user_name = "dev"
    password = "dev@zdlh"
    port = 22
    # 遠(yuǎn)程文件路徑(需要絕對(duì)路徑)
    remote_dir = "/data/nfs/zdlh/pdf/2018/07/31"
    # 本地文件存放路徑(絕對(duì)路徑或者相對(duì)路徑都可以)
    local_dir = "file_download/"

    # 連接遠(yuǎn)程服務(wù)器
    t = paramiko.Transport((host_name, port))
    t.connect(username=user_name, password=password)
    sftp = paramiko.SFTPClient.from_transport(t)

    # 遠(yuǎn)程文件開始下載
    down_from_remote(sftp, remote_dir, local_dir)

    # 關(guān)閉連接
    t.close()
結(jié)束語(yǔ)

在Python中,可以很好地利用Parmmiko的sftp完成文件傳輸操作。大家有什么疑問(wèn)或者想法,可以留言或者聯(lián)系我。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42128.html

相關(guān)文章

  • python大佬養(yǎng)成計(jì)劃----paramiko實(shí)現(xiàn)SSH

    摘要:模塊為的縮寫,由的網(wǎng)絡(luò)小組所制定為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用該模塊,可以方便的進(jìn)行連接和協(xié)議進(jìn)行文件傳輸。 paramiko模塊 SSH 為 Secure Shell 的縮寫,由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH 是目前較可靠,專...

    gghyoo 評(píng)論0 收藏0
  • SSH連接與自動(dòng)化部署工具paramiko與Fabric

    摘要:是基于實(shí)現(xiàn)的遠(yuǎn)程安全連接,支持認(rèn)證及密鑰方法。利用函數(shù)發(fā)送到,通過(guò)函數(shù)獲取回顯。如下全局屬性設(shè)定對(duì)象的作用是定義的全局設(shè)定,支持多個(gè)屬性及自定義屬性。相比確實(shí)簡(jiǎn)化了不少。出現(xiàn)異常時(shí),發(fā)出警告,繼續(xù)執(zhí)行,不要終止。 paramiko paramiko是基于Python實(shí)現(xiàn)的SSH2遠(yuǎn)程安全連接,支持認(rèn)證及密鑰方法??梢詫?shí)現(xiàn)遠(yuǎn)程命令執(zhí)行,文件傳輸,中間SSH代理等功能,相對(duì)于Pexpect...

    ermaoL 評(píng)論0 收藏0
  • pythonparamiko模塊的使用

    摘要:是一個(gè)用于做遠(yuǎn)程控制的模塊,使用該模塊可以對(duì)遠(yuǎn)程服務(wù)器進(jìn)行命令或文件操作,值得一說(shuō)的是,和內(nèi)部的遠(yuǎn)程管理就是使用的來(lái)現(xiàn)實(shí)。 paramiko paramiko是一個(gè)用于做遠(yuǎn)程控制的模塊,使用該模塊可以對(duì)遠(yuǎn)程服務(wù)器進(jìn)行命令或文件操作,值得一說(shuō)的是,fabric和ansible內(nèi)部的遠(yuǎn)程管理就是使用的paramiko來(lái)現(xiàn)實(shí)。 1、下載安裝 pycrypto,由于 paramiko 模塊內(nèi)部...

    Cobub 評(píng)論0 收藏0
  • 如何通過(guò)Telnet和SSH遠(yuǎn)程監(jiān)控主機(jī)

    摘要:子程序執(zhí)行將在新進(jìn)程中完成。要在上執(zhí)行子程序,該類將使用該函數(shù)。如果是字符串,則字符串指定要通過(guò)執(zhí)行的命令。如果是任何其他負(fù)值,則表示完全緩沖。它用于通過(guò)網(wǎng)絡(luò)進(jìn)行系統(tǒng)管理和應(yīng)用程序部署。 showImg(https://segmentfault.com/img/remote/1460000018833620); 來(lái)源 | 愿碼(ChainDesk.CN)內(nèi)容編輯 愿碼Slogan |...

    BothEyes1993 評(píng)論0 收藏0
  • python跑一邊腳本,把數(shù)據(jù)傳幾臺(tái)務(wù)器的指定位置

    摘要:創(chuàng)業(yè)公司,但也逐漸積累了十多態(tài)服務(wù)器,有時(shí)候因?yàn)橐稽c(diǎn)小疏忽,就導(dǎo)致了十多臺(tái)服務(wù)器返工,剛開始會(huì)使用一臺(tái)一臺(tái)登上去修改,或者一個(gè)一個(gè)上傳,基本上只要發(fā)生一點(diǎn)錯(cuò)誤,就會(huì)花去小半天時(shí)間,這不是最重要的,最重要的是,小半天時(shí)間都在做一件重復(fù)的事鏈接 創(chuàng)業(yè)公司,但也逐漸積累了十多態(tài)服務(wù)器,有時(shí)候因?yàn)橐稽c(diǎn)小疏忽,就導(dǎo)致了十多臺(tái)服務(wù)器返工,剛開始會(huì)使用ssh一臺(tái)一臺(tái)登上去修改,或者scp、sftp一...

    ThreeWords 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<