麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Python > 正文

python通過paramiko復制遠程文件及文件目錄到本地

2024-09-09 19:02:08
字體:
供稿:網(wǎng)友

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

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

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

解釋一下什么叫paramiko:

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

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

pip3 install pycryptopip3 install paramiko

好了。我定義一個方法,用于遠程復制文件。代碼如下:

import osimport paramikodef 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)

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

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

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

import osimport paramikodef 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:  #遍歷讀取遠程目錄里的所有文件      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'    # 遠程服務(wù)器IP  host_port = 22          # 遠程服務(wù)器端口  host_username = 'root'      #遠程服務(wù)器用戶名  host_password = 'password'    #遠程服務(wù)器密碼  remote_path = '/tmp/'      #這個是遠程目錄  local_path = '/tmp/'       #這個是本地目錄  RemoteScp(host_ip, host_port, host_username, host_password, remote_path, local_path) #調(diào)用方法

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)之家。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久国产精品99国产 | 欧美xxxwww | 国产伦久视频免费观看视频 | 欧美视频一二区 | 热@国产| 成人一级黄色大片 | 久久亚洲精品久久国产一区二区 | 日韩一级视频 | 男女生羞羞视频网站在线观看 | 日韩视频在线观看免费视频 | 91免费视频版 | 黄色大片在线免费看 | 日本人乱人乱亲乱色视频观看 | 99精品视频网站 | 亚洲一区二区在线 | 成人视屏在线观看 | 一级黄片毛片免费看 | 国产亚洲精品视频中文字幕 | 91超视频 | 大学生一级毛片在线视频 | 免费一级特黄毛片视频 | 毛片免 | 久久成人在线观看 | 国产免费一区视频 | 国产午夜精品一区 | 亚洲精品av在线 | 久久九九热re6这里有精品 | 九草网| 天天都色视频 | 一本在线高清码电影 | 欧美成人影院 | 双性精h调教灌尿打屁股的文案 | 国产精品一区二区三区在线看 | 亚洲人成中文字幕在线观看 | 黄网站在线播放视频免费观看 | 成人av一区二区免费播放 | 国产噜噜噜| 免费三级大片 | 9999久久久久久 | 免费看成人av | 永久免费av在线 |