イントラネット上のリモート ホストにコマンドを送信する Python Paramiko スクリプトがあります。一度に複数のホストにシャットダウン コマンドを送信したい場合があります。問題は、シャットダウン コマンドをバックグラウンドに設定しない限り、ただ座って待機することです。アンパサンドを使用してみました (上記のようにそのまま、またはエスケープ: \&)。ここに小さなテストプログラムがあります。私の OS は RHEL Linux 5.9 (Python 2.4.3) です。sudoers は、一部のユーザーの requiretty を無効にすることに注意してください。
#!/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