Python 實現互動式執行命令

2021-08-03 14:45:43 字數 670 閱讀 7685

paramiko提供了ssh 客戶端的介面,讓大家在寫指令碼的時候可以remote到遠端的機器上執行命令;有時候在執行某些命令的時候我們需要輸入一些值,接著才往下跑,下面是乙個簡單的指令碼來解決這個動態輸入的問題:

service tomcat status'", "root1234")

if retcode != 0:

exit(retcode)

except exception:

print "unexpected error:" + traceback.format_exc()

sys.exit(1)

finally:

if cmd:

cmd.logout()

if __name__ == "__main__":

main()

上面的例子是ssh到某台機器上檢查tomcat的執行狀態,但它會首先切換到root使用者,這個過程中系統會提示使用者輸入密碼:

# python sshcommander.py

2014-09-08 20:30:32,856 sshcommander:execute_interactive:107 password:

status of tomcat service:

tomcat (pid 31745) is running

ssh執行非互動式命令

如果你想用指令碼自動化登入到某台機子上,然後在上邊執行個命令,怎麼辦呢?可以使用ssh的非互動式命令 ssh zhc hongchangfirst.com home hczhang bin build.sh 這裡可以用expect模擬鍵盤輸入將密碼輸入,也可以用無密碼登入,具體就是將自己的公鑰放在對...

互動式命令 expect

shell儘管很強大。但是貌似無法完成互動式命令的操作,例項 ssh host 如果host而且該機沒有加入信任。手動輸入的時間需要password。這樣的情況下可以使用expect支援。下面舉個樣例來說明expect的功能與使用 功能 對集群各機器執行同樣指令 如 集群ip 為 192.168.6...

Python控制台實現互動式環境執行

python控制台開啟之後,會直接進入互動式環境,顯示提示符 而命令列程式則會顯示dos的命令提示符,我們需要輸入 python 或者 python3 進入互動式環境。一般來說,順利安裝python之後,有兩種方式可以進入python互動性環境。一種是在python自帶的idle中直接開啟互動式視窗...