亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python使用paramiko操作linux的方法講解

 更新時(shí)間:2019年02月25日 09:00:40   作者:Lee_Tech  
今天小編就為大家分享一篇關(guān)于Python使用paramiko操作linux的方法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

paramiko介紹

paramiko是一個(gè)基于python編寫的、使用ssh協(xié)議的模塊,跟xshell和xftp功能類似,支持加密與認(rèn)證,可以上傳下載和訪問服務(wù)器的文件。

可以利用paramiko模塊寫服務(wù)器腳本,在本地執(zhí)行,比如持續(xù)更新代碼,查看日志,批量配置集群等。

paramiko 主要包含SSHClient和SFTPClient兩個(gè)組件:

SSHClient

ssh服務(wù)會(huì)話的表示,通常用來(lái)執(zhí)行命令,主要有connect、exec_command、load_system_host_keys和set_missing_host_key_policy方法。

  • connect:建立SSH遠(yuǎn)程連接并校驗(yàn)。
  • exec_command:執(zhí)行指令并返回結(jié)果。
  • load_system_host_keys:加載本地公鑰校驗(yàn)文件。
  • set_missing_host_key_policy:遠(yuǎn)程主機(jī)沒有本地主機(jī)密鑰或HostKeys時(shí)的策略。

SFTPClient

SFTP客戶端對(duì)象,實(shí)現(xiàn)遠(yuǎn)程文件操作,主要有from_transport、put、get、Mkdir、remove、rename、stat、listdir等方法。

  • from_transport:從已通過驗(yàn)證的傳輸對(duì)象簡(jiǎn)歷連接。
  • put:上傳本地文件到服務(wù)器上。
  • get:從服務(wù)器下載文件到本地。
  • Mkdir、remove、rename、stat、listdir:創(chuàng)建目錄、刪除目錄、重命名文件或目錄、獲取文件信息、獲取指定目錄中的列表。

安裝與使用

安裝

pip install paramiko

執(zhí)行l(wèi)inux命令

import paramiko
#服務(wù)器信息,主機(jī)名(IP地址)、端口號(hào)、用戶名及密碼
hostname = "xxx.xxx.xx.170"
port = 11022
username = "rdadmin"
password = "818"
#創(chuàng)建SSH對(duì)象 
client = paramiko.SSHClient()
#自動(dòng)添加策略,保存服務(wù)器的主機(jī)名和密鑰信息
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連接服務(wù)器
client.connect(hostname, port, username, password, compress=True)
# 執(zhí)行l(wèi)inux命令
stdin, stdout, stderr = client.exec_command('ls /')
for line in stdout:
  print('... ' + line.strip('\n')) 
#or
print(stdout.readlines())

訪問linux上的文件

import paramiko
hostname = "192.168.0.1"
port = 22
username = "root"
password = "root"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password, compress=True)
sftp_client = client.open_sftp()
remote_file = sftp_client.open("/home/verified_list.txt") #文件路徑
try:
  for line in remote_file:
    print(line.strip())
finally:
  remote_file.close()

上傳到linux與從linux下載文件

import paramiko
hostname = 192.168.0.1
port = 22
username = "root"
password = "root"
transport = paramiko.Transport((hostname, port))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
# 下載文件
sftp.get("/home/share/video.mp4","./視頻文件下載/")
#上傳文件
sftp.put("./video.mp4","/home/share/video.mp4")
sftp.close()

與linux的交互操作

通過SSHClient的invoke_shell方法,可以創(chuàng)建一個(gè)交互會(huì)話的對(duì)象,和exec_command方法不同的是,這個(gè)可以實(shí)現(xiàn)命令交互,比如先cd到某個(gè)目錄下,再執(zhí)行腳本操作,然后退出,這種需要多個(gè)步驟的操作。

import paramiko
hostname = "192.168.0.1"
port = 22
username = "root"
password = "root"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password, compress=True)
channel = client.invoke_shell() # 在SSH server端創(chuàng)建一個(gè)交互式的shell
command = ""
channel.send(command + '\n')
time.sleep(10)
stdout = channel.recv(1024*100000)
out_list = stdout.decode().split("\n")
client.close()

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • python模塊之sys模塊和序列化模塊(實(shí)例講解)

    python模塊之sys模塊和序列化模塊(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇python模塊之sys模塊和序列化模塊(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-09-09
  • python pandas庫(kù)的安裝和創(chuàng)建

    python pandas庫(kù)的安裝和創(chuàng)建

    這篇文章主要介紹了python pandas庫(kù)的安裝和創(chuàng)建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • Django 重寫用戶模型的實(shí)現(xiàn)

    Django 重寫用戶模型的實(shí)現(xiàn)

    這篇文章主要介紹了Django 重寫用戶模型的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python字符串刪除指定字符的三個(gè)方法

    Python字符串刪除指定字符的三個(gè)方法

    這篇文章主要給大家介紹了關(guān)于Python字符串刪除指定字符的三個(gè)方法,我們?cè)谑褂?nbsp;Python處理字符串的時(shí)候,經(jīng)常會(huì)遇到一些字符串中出現(xiàn)了指定字符,需要的朋友可以參考下
    2023-07-07
  • python 環(huán)境變量和import模塊導(dǎo)入方法(詳解)

    python 環(huán)境變量和import模塊導(dǎo)入方法(詳解)

    下面小編就為大家?guī)?lái)一篇python 環(huán)境變量和import模塊導(dǎo)入方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-07-07
  • Scrapy中如何向Spider傳入?yún)?shù)的方法實(shí)現(xiàn)

    Scrapy中如何向Spider傳入?yún)?shù)的方法實(shí)現(xiàn)

    這篇文章主要介紹了Scrapy中如何向Spider傳入?yún)?shù)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 詳解Python如何使用Falcon構(gòu)建?API

    詳解Python如何使用Falcon構(gòu)建?API

    Falcon?是一個(gè)Python?的?Web?框架,專注于為構(gòu)建?API?提供一個(gè)極其輕量級(jí)、超全面的性能平臺(tái),下面小編就來(lái)為大家詳細(xì)介紹一下Python如何使用Falcon構(gòu)建?API吧
    2023-11-11
  • 詳解python關(guān)于多級(jí)包之間的引用問題

    詳解python關(guān)于多級(jí)包之間的引用問題

    本文主要介紹了python關(guān)于多級(jí)包之間的引用問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解

    對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解

    今天小編就為大家分享一篇對(duì)Python3中列表乘以某一個(gè)數(shù)的示例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-07-07
  • 用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    今天小編就為大家分享一篇用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-07-07

最新評(píng)論