bash - 在 bash 脚本中使用 ping 检查主机可用性

标签 bash networking ping connectivity

我想写一个脚本,它会不断检查网络中应该整天在线的设备是否真的在线。我尝试使用 ping,但是

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

无论我输入有效还是无效的 ip 地址,都会得到 1。我如何检查特定地址(或更好的 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表示不可达

关于bash - 在 bash 脚本中使用 ping 检查主机可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123211/

相关文章:

android - 如何从 Android 平板电脑 ping 服务器

sql - Azure SQL : can’t ping the Private Endpoint from on-prem

json - 将两个json数组(加载到内存中)合并为一个json数组

bash - 有没有办法在我的 shell 脚本中并排运行两个命令?

python - 使用 python 套接字连接到 raspberrypi 时出错

python - 具有多个连接的请求

linux - 不能打开超过 28234 个套接字?

bash - 计算bash中两个时间戳之间的差异

linux - 如何编写一个 bash 脚本来给另一个程序响应

mysql - 即使在创建用户后也无法从远程计算机连接 mysql 数据库