ssh.exec_命令(“关闭h 17:00&”)

2024-10-01 11:31:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pythonparamiko脚本,它将命令发送到外网上的远程主机。有时我想同时向多个主机发送关闭命令。问题是shutdown命令只是在后台等待。我尝试过使用和号(如上所示,或转义:\&;)。这是一个小测试程序。我的操作系统是rhellinux5.9(python2.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

Tags: 命令脚本paramikodata远程stdinstdoutline
1条回答
网友
1楼 · 发布于 2024-10-01 11:31:04

我已经按预期使用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()

相关问题 更多 >