Python ssh.exec_命令(“shutdown-h17:00”)

Python ssh.exec_命令(“shutdown-h17:00”),python,linux,paramiko,Python,Linux,Paramiko,我有一个Python Paramiko脚本,它将命令发送到内部网上的远程主机。有时我希望同时向多台主机发送shutdown命令。问题是shutdown命令只是停留并等待,除非您将其设置为后台。我试过使用符号(如上所示为空,或转义:\&)。这是一个小测试程序。我的操作系统是RHEL Linux 5.9(Python 2.4.3)。请注意,sudoers禁用了某些用户的requirety #!/usr/bin/python import paramiko ssh = paramiko.SSHCli

我有一个Python Paramiko脚本,它将命令发送到内部网上的远程主机。有时我希望同时向多台主机发送shutdown命令。问题是shutdown命令只是停留并等待,除非您将其设置为后台。我试过使用符号(如上所示为空,或转义:\&)。这是一个小测试程序。我的操作系统是RHEL Linux 5.9(Python 2.4.3)。请注意,sudoers禁用了某些用户的requirety

#!/usr/bin/python
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("<hostname>",username="<my username>", password="<mypassword>")
stdin, stdout, stderr = ssh.exec_command("sudo /sbin/shutdown -h 17:00 \&")
stdin.write('\n')stdin.flush()
data = stdout.read().splitlines()
for line in data:
    print line
#/usr/bin/python
进口帕拉米科
ssh=paramiko.SSHClient()
ssh.set_缺少_主机_密钥_策略(paramiko.AutoAddPolicy())
ssh.connect(“”,username=“”,password=“”)
stdin,stdout,stderr=ssh.exec_命令(“sudo/sbin/shutdown-h17:00\&”)
stdin.write('\n')stdin.flush()
data=stdout.read().splitlines()
对于行输入数据:
打印行

我已按预期使用shutdown命令解决了问题。首先,不要逃避符号(\&)。由于shutdown命令不向stdout返回任何内容,因此我只删除了处理输出的那些行。想要使用带时间的shutdown的原因是为了用户通知

#!/usr/bin/python
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("<hostname>",username="<my username>", password="<mypassword>")
stdin, stdout, stderr = ssh.exec_command("sudo /sbin/shutdown -h 17:00 &")]
ssh.close()
#/usr/bin/python
进口帕拉米科
ssh=paramiko.SSHClient()
ssh.set_缺少_主机_密钥_策略(paramiko.AutoAddPolicy())
ssh.connect(“”,username=“”,password=“”)
stdin,stdout,stderr=ssh.exec_命令(“sudo/sbin/shutdown-h17:00&”)
ssh.close()

&
只有在从(特定)外壳上运行时才有意义-它经过特殊处理。因此,如果Excel命令绕过shell,则它将完全无效。如果ExcEd指令确实绕过shell,则考虑1)生成shell(作为命令),并在该上下文中使用<代码> NOHUP/& < /代码>;2)使用<代码> <代码> 3 >使用<代码>屏幕< /代码>。另外,一般请参见
nohup