2017-08-08 13 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

我也试过光纤重启,但它不会等待或挂起,直到设备再次出现 –

相关问题