これは、ホストがSSH対応であるかどうかをテストするための私の現在のコードです。 SSHサービスの有無にかかわらず、ホストが稼動しているときにうまく動作します。しかし、ホストがクラッシュしたときにハングアップしているように見えます。これは、私がそれに依存する必要があるユニークなユースケースです。 OSやその他の依存関係のため、Pythonのバージョンは現在2.6に保つ必要があります。だから私はこの機能を働かせる方法と1-2秒のタイムアウトが必要です。タイムアウトでSSHをテストする方法が必要
import commands
def test_ssh(host):
output = commands.getstatusoutput("ssh " + host + " hostname")
if output[0] == 0:
return True
else:
print(host + " not accessible via SSH!")
return False
'sshの-oのconnecttimeout = 5 ...'の仕事をしていますか? – drew010
私はそれを試してみましょう。フラグは正常に動作し、私はBatchModeを下記の提案ごとに追加しました。しかし、私はサーバが要求に応じてクラッシュしたときの状態を再現することができないので、それが再び起こるまで確実に言うことはできません。 – Eroji