内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

python如何通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“python如何通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python如何通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地”這篇文章吧。

成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,有關(guān)企業(yè)網(wǎng)站設(shè)計方案、改版、費用等問題,行業(yè)涉及效果圖設(shè)計等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

最近寫運維自動化平臺,需要用python寫很多的小功能模塊。

這里就分享一個用Python的paramiko來實現(xiàn)功能的一段代碼:

復(fù)制遠(yuǎn)程服務(wù)器上的文件及文件夾到本地目錄。

解釋一下什么叫paramiko:

paramiko是用python寫的一個模塊,遵循SSH2協(xié)議,支持以加密和認(rèn)證的方式,進(jìn)行遠(yuǎn)程服務(wù)器的連接。利用該模塊,可以方便的進(jìn)行ssh連接和sftp協(xié)議進(jìn)行sftp文件傳輸以及遠(yuǎn)程命令執(zhí)行。

安裝paramiko也很簡單,我用的是python3,裝好了pip,可以直接用pip來安裝。
不過由于 paramiko 模塊內(nèi)部依賴pycrypto,所以先下載安裝pycrypto:

pip3 install pycrypto
pip3 install paramiko

好了。我定義一個方法,用于遠(yuǎn)程復(fù)制文件。代碼如下:

import os
import paramiko

def RemoteScp(host_ip, host_port, host_username, host_password, remote_file, local_file):
  scp = paramiko.Transport((host_ip, host_port))
  scp.connect(username=host_username, password=host_password)
  sftp = paramiko.SFTPClient.from_transport(scp)
  sftp.get(remote_file, local_file)
  scp.close()
  return ("success")

注意這里的語句:

sftp.get(remote_file, local_file)中自帶的get方法,只能拷貝文件目錄,不能拷貝文件夾。

然后調(diào)用這個方法:

if __name__ == '__main__':
  host_ip = '192.168.1.123'
  host_port = 22
  host_username = 'root'
  host_password = 'password'
  remote_path = '/tmp/test.sql'
  local_path = '/tmp/test.sql'
  RemoteScp(host_ip, host_port, host_username, host_password, remote_path, local_path)

這就是基本遠(yuǎn)程文件復(fù)制的功能實現(xiàn)。這里只能實現(xiàn)文件對文件的遠(yuǎn)程復(fù)制。

如果我們要遠(yuǎn)程復(fù)制整個文件夾。需要對上面的方法改進(jìn)一下,加一段循環(huán),讓其能遍歷遠(yuǎn)程目錄里的所有文件,然后按照上面的方法依次復(fù)制到本地。

我在代碼中加了一些注釋。修改以后的完整代碼如下:

import os
import paramiko

def RemoteScp(host_ip, host_port, host_username, host_password, remote_path, local_path):
  scp = paramiko.Transport((host_ip, host_port))
  scp.connect(username=host_username, password=host_password)
  sftp = paramiko.SFTPClient.from_transport(scp)
  try:
    remote_files = sftp.listdir(remote_path)
    for file in remote_files:  #遍歷讀取遠(yuǎn)程目錄里的所有文件
      local_file = local_path + file
      remote_file = remote_path + file
      sftp.get(remote_file, local_file)
  except IOError:  # 如果目錄不存在則拋出異常
    return ("remote_path or local_path is not exist")
  scp.close()


if __name__ == '__main__':
  host_ip = '192.168.1.123'    # 遠(yuǎn)程服務(wù)器IP
  host_port = 22          # 遠(yuǎn)程服務(wù)器端口
  host_username = 'root'      #遠(yuǎn)程服務(wù)器用戶名
  host_password = 'password'    #遠(yuǎn)程服務(wù)器密碼
  remote_path = '/tmp/'      #這個是遠(yuǎn)程目錄
  local_path = '/tmp/'       #這個是本地目錄
  RemoteScp(host_ip, host_port, host_username, host_password, remote_path, local_path) #調(diào)用方法

以上是“python如何通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:python如何通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地-創(chuàng)新互聯(lián)
分享路徑:http://www.rwnh.cn/article1/dggiod.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站改版、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
鹤岗市| 宁蒗| 石泉县| 府谷县| 沭阳县| 勐海县| 东乡县| 沁源县| 桃源县| 荣昌县| 防城港市| 西和县| 吉安市| 堆龙德庆县| 安塞县| 伽师县| 东乡族自治县| 武川县| 长丰县| 新巴尔虎左旗| 土默特右旗| 怀化市| 黄龙县| 正安县| 宣恩县| 临沭县| 孝昌县| 平遥县| 娱乐| 左云县| 韩城市| 洛宁县| 互助| 全南县| 余庆县| 正镶白旗| 南平市| 哈尔滨市| 色达县| 屏东市| 长子县|