web-dev-qa-db-ja.com

リモートコンピューターがssh /スクリプトアクセスのためにオンラインであることを確認するにはどうすればよいですか?

ラップトップからUbuntuサーバーにデータをバックアップするスクリプトを書いています。そのために、バックアップを開始する前にサーバーが使用可能かどうかをテストする(ba)shコマンドを探しています。ブール値を返すポート22のpingのようなもの。

これどうやってするの?

12
Amo__

このような:

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

もし 0使用可能です。もし 1ではありません。

21
bahamat

netcat を使用:

nc -z localhost 22

マンページから

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

代わりの:

nc -vzw 1 hostname 22
5
Mr. Pundir

どうですか

MACHINE=192.168.0.8
exec 3>/dev/tcp/${MACHINE}/22
if [ $? -eq 0 ]
then
    echo "SSH up"
else
    echo "SSH down"
fi
3
user4418