最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別

 更新時(shí)間:2024年02月20日 09:36:17   作者:上海-悠悠  
invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel,本文主要介紹了Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下

前言

Paramiko 是 Python 語言的一個(gè) SSH 客戶端??梢赃h(yuǎn)程連接Linux服務(wù)器,通過 python 對(duì) Linux 進(jìn)行操作,可以實(shí)現(xiàn)進(jìn)行對(duì)遠(yuǎn)程服務(wù)器進(jìn)行下載和上傳文件操作。

  • exec_command()函數(shù)是將服務(wù)器執(zhí)行完的結(jié)果一次性返回給你;
  • invoke_shell()函數(shù)類似shell終端,可以將執(zhí)行結(jié)果分批次返回,看到任務(wù)的執(zhí)行情況,不會(huì)因?yàn)閳?zhí)行一個(gè)很長的腳本而不知道是否執(zhí)行成功

exec_command 和 invoke_shell 區(qū)別

invoke_shell 使用 SSH shell channel,而 exec_command 使用 SSH exec channel
shell channel在正常情況下,SSH終端客戶端(例如PuTTY)會(huì)使用shell channel

Shell channel執(zhí)行登錄Shell(就像您使用SSH終端客戶端登錄一樣)。然后,shell程序?qū)@示命令提示符,并等待客戶端/用戶鍵入命令。

Shell channel的目的是實(shí)現(xiàn)交互式Shell會(huì)話。那是很少做的事情。如果這樣做,通常會(huì)希望使用終端仿真(Paramiko invoke_shell會(huì)執(zhí)行此操作,但實(shí)際上可以在不進(jìn)行終端仿真的情況下打開shell channel)。

exec channel

exec channel的目的是使命令執(zhí)行自動(dòng)化。因此,通常您不想使用終端仿真,以避免使用該命令執(zhí)行諸如分頁,著色和主要是交互式確認(rèn)之類的操作。

exec命令將命令作為“參數(shù)”,通過用戶的默認(rèn)shell程序,而不是作為“登錄”shell程序,這是主要的不同。當(dāng)您在命令行上指定要執(zhí)行的命令時(shí),使用exec channel:

例如:

ssh user@host command

command就是發(fā)送完指令,連接就會(huì)斷開。invoke_shell則是長連接,保持狀態(tài)。

exec_command() 操作

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(
    hostname='127.1.1.12',
    port=22,
    username='root',
    password='aa**********',
    timeout=5
)

while True:
    cmdline = input("command: ")
    stdin, stdout, stderr = ssh.exec_command(cmdline)
    for row in stdout.readlines():
        row = row.replace('\r', '').replace('\n', '').replace('\t', '')
        print(row)

invoke_shell() 操作

代碼示例:

import paramiko

# 建立一個(gè)socket
trans = paramiko.Transport(('127.0.1.66', 22))
# 啟動(dòng)一個(gè)客戶端
trans.start_client()

# 如果使用用戶名和密碼登錄
trans.auth_password(username='root', password='aa********')
# 打開一個(gè)通道
channel = trans.open_session()
# 獲取終端
channel.get_pty()
# 激活終端,這樣就可以登錄到終端了,就和我們用類似于xshell登錄系統(tǒng)一樣
channel.invoke_shell()
results = channel.recv(1024000)
print(f"輸出1: {results.decode()}")

channel.send("ll\n")
while True:
    results2 = channel.recv(1024000)
    print(f"輸出2: {results2.decode()}")

到此這篇關(guān)于Python Paramiko模塊中exec_command()和invoke_shell()兩種操作區(qū)別的文章就介紹到這了,更多相關(guān)Python exec_command()和invoke_shell()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python抓取網(wǎng)頁中的圖片示例

    python抓取網(wǎng)頁中的圖片示例

    這篇文章主要介紹了python抓取網(wǎng)頁中圖片的示例,需要的朋友可以參考下
    2014-02-02
  • 詳解python3中tkinter知識(shí)點(diǎn)

    詳解python3中tkinter知識(shí)點(diǎn)

    本篇文章給大家分享了關(guān)于python3中tkinter的相關(guān)知識(shí)點(diǎn)以及實(shí)例代碼,有興趣的朋友參考下。
    2018-06-06
  • 圣誕節(jié)教你用Python繪制愛心圣誕樹

    圣誕節(jié)教你用Python繪制愛心圣誕樹

    圣誕節(jié)快要到了,心血來潮,寫段代碼給大家介紹下基于Python繪制愛心圣誕樹的方法,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-12-12
  • python獲取當(dāng)前文件路徑以及父文件路徑的方法

    python獲取當(dāng)前文件路徑以及父文件路徑的方法

    今天小編就為大家分享一篇python獲取當(dāng)前文件路徑以及父文件路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解pytest傳遞參數(shù)的幾種方式

    詳解pytest傳遞參數(shù)的幾種方式

    本文主要介紹了詳解pytest傳遞參數(shù)的幾種方式,詳細(xì)的介紹了4種傳參方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • Python Web框架Django的模型和數(shù)據(jù)庫遷移詳解

    Python Web框架Django的模型和數(shù)據(jù)庫遷移詳解

    Django 是一個(gè)極其強(qiáng)大的 Python Web 框架,它提供了許多工具和特性,能夠幫助我們更快速、更便捷地構(gòu)建 Web 應(yīng)用,在本文中,我們將會(huì)關(guān)注 Django 中的模型(Models)和數(shù)據(jù)庫遷移(Database Migrations)這兩個(gè)核心概念,需要的朋友可以參考下
    2023-08-08
  • Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解

    這篇文章主要介紹了Django 如何使用視圖動(dòng)態(tài)輸出 CSV 以及 PDF,我們需要用到 python 的 csv 和 reportLab 庫,通過django視圖來定義輸出我們需要的 csv 或者 pdf 文件,需要的朋友可以參考下
    2024-06-06
  • Python中異常類型ValueError使用方法與場景

    Python中異常類型ValueError使用方法與場景

    這篇文章主要介紹了Python中的ValueError異常類型,它在處理不合適的值時(shí)拋出,并提供如何有效使用ValueError的建議,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Python itertools模塊詳解

    Python itertools模塊詳解

    這篇文章主要介紹了Python itertools模塊詳解,本文基本是基于文檔的翻譯和補(bǔ)充,相當(dāng)于翻譯了,需要的朋友可以參考下
    2015-05-05
  • Python中表示字符串的三種方法

    Python中表示字符串的三種方法

    這篇文章主要介紹了Python中表示字符串的三種方法的相關(guān)資料,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

景洪市| 大姚县| 祁门县| 伽师县| 泊头市| 广昌县| 洛宁县| 池州市| 衢州市| 东丽区| 湾仔区| 天津市| 镇沅| 格尔木市| 洞头县| 万荣县| 芒康县| 江陵县| 行唐县| 夹江县| 吴江市| 普安县| 虹口区| 囊谦县| 新源县| 上犹县| 米泉市| 洞头县| 扶绥县| 昌邑市| 遵义市| 永清县| 仙游县| 岳池县| 汽车| 武陟县| 嫩江县| 资中县| 黄大仙区| 乐平市| 寿宁县|