ラップトップからUbuntuサーバーにデータをバックアップするスクリプトを書いています。そのために、バックアップを開始する前にサーバーが使用可能かどうかをテストする(ba)shコマンドを探しています。ブール値を返すポート22のping
のようなもの。
これどうやってするの?
このような:
nc -z hostname 22 > /dev/null
echo $?
もし 0
使用可能です。もし 1
ではありません。
netcat を使用:
nc -z localhost 22
マンページから
-z Specifies that nc should just scan for listening daemons,
without sending any data to them.
代わりの:
nc -vzw 1 hostname 22
どうですか
MACHINE=192.168.0.8
exec 3>/dev/tcp/${MACHINE}/22
if [ $? -eq 0 ]
then
echo "SSH up"
else
echo "SSH down"
fi