0

以下のコードを試しましたが、リモート PC を再起動しませんでした。

for line in readips.readlines():
    line = line.strip()
    print("The ip address is : ") + str(line)
    rebootsys = "ssh root@"+str(line) + " reboot"
    print("The reboot system ip is:") + str(rebootsys)
    if(os.system(rebootsys %locals())==0):
        print("Done")
    else:
        print("Not able to reboot")

print ステートメントの実行中に IP を正常に出力します。wing IDE を使用して、段階的に実行しました。システムが実行を開始すると、条件if(os.system(rebootsys %locals())==0が単にアイドル状態である場合、次のステップに移動しません。再起動した場合は、移動するprint("Done")必要があります。他の部分を移動する必要がありますが、if 条件自体を待機するだけです。
Python スクリプトを使用して、ubuntu システムから複数の ubuntu システムを再起動する必要があります。

4

1 に答える 1

1

subprocessモジュールに切り替えて、起動されたコマンドからの出力をキャッチし、起動されたプロセスで次に何をすべきかを決定することをお勧めします。system()エレガンスからセキュリティまで、多くの理由から、使用は最近では良い習慣とは見なされていないとしましょう。

このモジュールで実際に何ができるかの良い例は、セクション17.1.4.3 にあります。os.system()17.1.4.5 を置き換えます。os.popen()、os.popen2()、os.popen3() の置き換え。私を信じてください、それを使用することは、さらに数行のコードを投資する価値があります:-)

于 2013-06-14T11:34:35.560 に答える