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.py2014-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中直接開啟互動式視窗...