0

次のコードがあります。

from pssh.clients import ParallelSSHClient
#-------------------------------------------------

hosts = [ IP1, IP2, ... IPn]
host_config = { dict containing userid & passwd for each host }

clients = ParallelSSHClient(hosts, host_config=host_config,
                           num_retries=1, timeout=3)

output = clients.run_command("ls", stop_on_errors=False, timeout=3)
print output

私のホストがすべて有効な IP を持っている場合、「出力」が得られます。ただし、IP の 1 つでも無効な場合 (ホストが存在しない場合)、run_command は永久にハングします。run_command に「use_pty=True」引数を使用してみました。

奇妙なことに、クライアントの代わりに非推奨のメソッドpssh_clientを使用すると、次のようになります。

from pssh.pssh_client import ParallelSSHClient

期待どおりにタイムアウトします。インポートの新しい方法で導入されたバグがあるか、タイムアウトを適切に指定する新しい方法があります。非推奨の方法ではなく、推奨される方法を使用したいと思います。しかし、推奨される方法は私にはうまくいきません。私がここで何か間違っているかどうか誰にも分かりますか?

4

1 に答える 1