SSH /スクリプトアクセス用にリモートシステムがオンラインであることを確認する方法は?

SSH /スクリプトアクセス用にリモートシステムがオンラインであることを確認する方法は?

私のラップトップからUbuntuサーバーにデータをバックアップするスクリプトを書いています。これを行うには、バックアップを開始する前にサーバーが利用可能かどうかをテストするための(ba)shコマンドを探しています。pingポート22でブール値を返すのと同じです。

どうすればいいですか?

答え1

このように:

nc -z hostname 22 > /dev/null
echo $?

その場合は0使用できます。もしそうなら、1そうではありません。

答え2

使用インターネット猫:

nc -z localhost 22

マンページから

 -z      Specifies that nc should just scan for listening daemons,
         without sending any data to them.

答え3

余分:

nc -vzw 1 hostname 22

答え4

ssh hostname exit 2>/dev/null ; echo $?

これは実際に接続を作成し、認証を実行します。そして時には間違ったポート22の仮定に依存しません。

関連情報