有时候,我们需要在linux上ping一些地址,判断地址是否被占用
一、编写shell脚本
脚本如下:
#!/bin/bash for i in 192.168.16.{1..255} do ( ping $i -c 2 > /dev/null 2>&1 [ $? -eq 0 ] && echo "$i is alive" )& done
效果如下
二、使用fping
fping需要单独安装,它能ping一组地址, -g指定一组地址,比如
fping -g 192.168.16.1 192.168.16.200
表示这两个地址之间所有的地址。
-a选项表明打印出alive的主机
qingsong@db2a:/tmp$ fping -a -g 192.168.16.0/24 2> /dev/null
192.168.16.1
192.168.16.2
192.168.16.128
192.168.16.129
-u选项打印出unreachable的主机
qingsong@db2a:/tmp$ fping -u -g 192.168.16.0/24 2> /dev/null
192.168.16.3
192.168.16.4
192.168.16.5
...<略>...
192.168.16.254
效果如下:
四、使用zabbix的自动发现
因为ping主机可能不准,因为有终端服务器上防火墙禁ping,zabbix上可以配置自动发现规则,可以通过ping,ssh发现主机的状态,从而判断主机地址
是否被占用