回覆列表
-
1 # 程式猿來導事
-
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進行確認。
操作分離,如連線操作、遠端執行命令、關閉連線等操作單獨二次封裝,一遍複雜場景下重複呼叫。
透過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虛擬機器。