1. ホーム
  2. bash

[解決済み] bashスクリプトでpingを使用してホストの可用性をチェックする

2023-06-21 04:56:31

質問

一日中オンラインになっているはずのネットワーク上のデバイスが、本当にオンラインになっているかどうかをチェックし続けるスクリプトを書きたいと思っています。私はpingを使用することを試みました、しかし

if [ "`ping -c 1 some_ip_here`" ]
then
  echo 1
else
  echo 0
fi

与える 1 が表示されます。これは、有効なIPアドレスを入力しても、無効なIPアドレスを入力しても同じです。特定のアドレス (または IP アドレスのリストからのデバイスのいずれか) がオフラインになったかどうかを確認するにはどうすればよいですか?

どのように解決するのですか?

Pingはエラーの種類によって異なる終了コードを返します。

ping 256.256.256.256 ; echo $?
# 68

ping -c 1 127.0.0.1 ; echo $?
# 0

ping -c 1 192.168.1.5 ; echo $?
# 2

0はホストに到達可能であることを意味します

2は到達不能を意味します