如何使用paramikopython重新启动远程服务器并等待设备再次启动并在重新启动后执行另一个命令

如何使用paramikopython重新启动远程服务器并等待设备再次启动并在重新启动后执行另一个命令,python,pytest,paramiko,Python,Pytest,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 &") 这段代码只使reb

我尝试了以下代码:

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 &") 
这段代码只使reboot在后台执行,并在reboot之后切换到另一个命令。
但要求远程服务器应该重新启动,并且从客户端开始,代码应该等待远程服务器再次启动,然后在重新启动语句后执行另一个命令。

您可以尝试以下操作

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

我还建议使用
fabric
:它有一些很好的特性,包括命令的重试参数。它在
fabric.api

中也有
reboot
命令,谢谢。是否可以尝试使用paramiko,在重新启动并等待事件后,我必须在远程服务器目录中执行命令“ls”。我也尝试了fabric reboot,但它不会等待或挂起,直到设备再次启动