2017-08-08 11 views
-1

我試過下面的代碼重新啓動後執行其他命令:在後臺執行如何重新啓動遠程服務器,等待設備再次和使用的paramiko蟒蛇

client = paramiko.SSHClient()   
client.load_system_host_keys() 

chan = client.get_transport().open_session(timeout=timeout) 

chan.settimeout(timeout) 

chan.exec_command("/sbin/reboot -f > /dev/null 2>&1 &") 

此代碼僅作重新啓動和重新啓動後切換到另一個命令。 但是需求是遠程服務器應該重新啓動,並且從客戶端代碼應該等到遠程服務器再次啓動,然後在重新啓動語句後執行另一個命令。

回答

0

你可以嘗試像

while True: 
    try: 
     # your commands 
     break 
    except: 
     sleep(some_timeout) 

我也建議使用fabric:它有一些不錯的功能,包括重試指標的影響的命令。它也有reboot命令在fabric.api

+0

好的,謝謝。可以嘗試使用paramiko,我必須在重啓和等待事件後在遠程服務器目錄中執行'ls'命令。 –

+0

我也試過光纖重啓,但它不會等待或掛起,直到設備再次出現 –

相關問題