成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

Anonymous1 / 2835人閱讀

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

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

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

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

使用時候的基本配置

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

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

"""
通過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)程文件路徑(需要絕對路徑)
    remote_dir = "/data/nfs/zdlh/pdf/2018/07/31"
    # 本地文件存放路徑(絕對路徑或者相對路徑都可以)
    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é)束語

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42128.html

相關(guān)文章

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

    摘要:模塊為的縮寫,由的網(wǎng)絡(luò)小組所制定為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。是目前較可靠,專為遠(yuǎn)程登錄會話和其他網(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 評論0 收藏0
  • SSH連接與自動化部署工具paramiko與Fabric

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

    ermaoL 評論0 收藏0
  • pythonparamiko模塊的使用

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

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

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

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

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

    ThreeWords 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<