如何使用Paramiko執行多個命令並將輸出讀回到我的python腳本中?如何使用paramiko執行多行並只讀取其輸出
這個問題理論上在這裏回答How do you execute multiple commands in a single session in Paramiko? (Python),但在我看來,答案是不正確的。
問題是,當你讀取標準輸出時,它讀取終端的全部內容,包括你「輸入」到終端中的程序。
試試看(這基本上是從上面線程複製粘貼):
import paramiko
machine = "you machine ip"
username = "you username"
password = "password"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(machine, username = username, password = password)
channel = client.invoke_shell()
stdin = channel.makefile('wb')
stdout = channel.makefile('rb')
stdin.write('''
cd tmp
ls
exit
''')
print stdout.read()
stdout.close()
stdin.close()
client.close()
所以我的問題是,我該如何執行多個命令和只讀這些命令的輸出,而不是輸入我「輸入」和輸出?
在此先感謝您的幫助和時間。
請說明您一起碼 –
答案創建SSHClient對象,然後調用'連接()「」連接到本地SSH server.Setting主機關鍵政策需要一個方法調用到SSH客戶端對象( ''set_missing_host_key_policy()'),它設置你想要管理入站主機密鑰的方式,或者你可以使用paramiko.AutoAddPolicy()''來自動接受未知的密鑰(不安全)。接下來我們設置主機名,密碼,目標主機和目標主機(22 ssh端口)。我們將connect方法與ssh客戶機對象調用,然後調用exec_command並將命令和存儲命令輸出傳遞到stdout和結尾,stdout.readlines()來讀取輸出。 – SlickTester