首頁>Club>
類似ssh那樣,並且可以執行shell命令。
11
回覆列表
  • 1 # 程式猿來導事

    透過Python程式設計連線linux虛擬機器,其實就是Python 程式設計實現SSH登入Python.

    Python中有個模組Paramiko,可以基於這個庫來實現。Paramiko是Python (2.7, 3.4+)純Python介面實現SSH的庫。

    1. 首先安裝Paramiko模組

    pip install paramiko

    2. 進入Python命令列測試Paramiko

    Python 2.7.12 (default, Nov 12 2018, 14:36:49)

    [GCC 5.4.0 20160609] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import paramiko

    >>> ssh = paramiko.SSHClient()

    >>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    >>>ssh.connect(ip,22,username,passwd,timeout=5)

    >>> cmd = "ls >test"

    >>> stdin,stdout,stderr = ssh.exec_command(cmd)

    >>> stdin,stdout,stderr = ssh.exec_command(cmd) >>> print stdout.readlines()#輸出顯示命令結果

    [u"!\n", u"Desktop\n", u"Documents\n", u"Downloads\n", u"examples.desktop\n", u"java_error_in_STUDIO_3528.log\n", u"Music\n", u"Pictures\n", u"project\n", u"Public\n", u"STA\n", u"Templates\n", u"test\n", u"Untitled Document 1\n", u"Videos\n"]

    3. 根據Step2的函式api編寫Python程式碼:

    ssh = paramiko.SSHClient()

    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    ssh.connect(ip,22,username,passwd,timeout=5)

    編寫cmd邏輯處理程式碼:

    stdin, stdout, stderr = ssh.exec_command(cmd)

    熟悉以上流程後你還可以透過Python編寫一個UI 介面來登入linux虛擬機器。

  • 2 # 小小猿愛嘻嘻

    你說的是Python模擬ssh登陸Linux虛擬機器,並執行shell命令吧,這裡主要用到paramiko這個庫,可以完成建立ssh客戶端,執行shell命令,並返回執行結果,下面我簡單介紹一下實現過程,實驗環境win10+python3.6+pycharm5.0,主要步驟如下:

    1.首先,安裝paramiko,這個直接在cmd中輸入命令“pip install paramiko”就行,如下:

    2.安裝完成後,我們就可以程式設計模型ssh登陸Linux虛擬機器,執行shell命令,並返回執行結果了,主要程式碼如下,很簡單,也很好理解,這裡需要指定虛擬機器的IP地址、ssh埠號、使用者名稱和密碼:

    至此,我們就完成了利用Python來連線Linux虛擬機器,執行shell命令,並返回執行結果。總的來說,整個過程不難,程式碼量也不多,很好理解,只要你有一定的Python基礎,熟悉一下上面的程式碼,多除錯幾遍程式,很快就能掌握的,網上也有相關教程和資料,很詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

  • 3 # 軟體測試開發技術棧

    使用paramiko模組,建議做二次封裝,方便後續呼叫。

    paramiko安裝pip install paramiko注意事項

    當首次連線Linux伺服器時,需要進行手動操作,此時需要set_missing_host_key_policy(paramiko.AutoAddPolicy())方法自動新增主機名及主機金鑰到本地HostKeys物件,不依賴load_system_host_key的配置,即新建立ssh連線時不需要再手動輸入yes或no進行確認。

    操作分離,如連線操作、遠端執行命令、關閉連線等操作單獨二次封裝,一遍複雜場景下重複呼叫。

  • 中秋節和大豐收的關聯?
  • 猛獸是如何看待人類的?