Linux云计算交流群:720995729

70424-k8tz1lh63ys.png

前两天看到一网友发的批量检测局域网主机是否在线的文章,用的是ping命令配合for循环实现。

这个方案确实可行,但是效率太低!用fping命令实现,速度更快,性能更强!

1. fping简介:

fping命令类似于ping,但比ping强大,因为它是并发的ping服务器。与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping,fping还可以在命令行中指定要ping的主机数量范围。

2. 命令语法:

通过fping -h可以查看这个命令的用法与常用参数:

[root@www.lutixia.cn ~]# fping -h

Usage: fping [options] [targets...]

3. 参数选项:

-a      显示存活的主机
-b      ping 数据包的大小。(默认为56)
-c      ping每个目标的次数 (默认为1)
-f      从文件获取目标列表(不能与 -g 同时使用)
-l      循环发送ping
-g      通过指定开始和结束地址来生成目标列表,可以指定网段
-u      显示不可到达的目标
-s      只

4. 实例演示:

4.1 安装fping命令:

这个命令系统默认没有安装,需要单独安装,且需要额外配置epel源,安装步骤参考如下:

# 配置epel源:
[root@www.lutixia.cn ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装fping包:
[root@www.lutixia.cn ~]# yum install fping -y

4.2 检测指定主机是否在线:

检测指定主机是否在线,可以ping一个,也可以ping多个ip。其中多个ip之间通过空格隔开,下面的命令是检测192.168.0.1、192.168.0.125、192.168.0.126三台服务器是否在线:

[root@www.lutixia.cn ~]# fping 192.168.0.1 192.168.0.125 192.168.0.126 2>/dev/null
192.168.0.1 is alive
192.168.0.125 is alive
192.168.0.126 is unreachable

# 如果只想看在线的ip,可以添加-aq。-a:只显示在线的,-q:静默模式检测,不显示过程:
[root@www.lutixia.cn ~]# fping -aq 192.168.0.1 192.168.0.125 192.168.0.126
192.168.0.1
192.168.0.125

4.3 检测指定范围主机是否在线:

下面的命令是检测从192.168.0.5到192.168.0.130之间的服务器中在线的主机:

[root@www.lutixia.cn ~]# fping -aqg 192.168.0.5 192.168.0.130
192.168.0.103
...(省略部分ip)
192.168.0.125
192.168.0.130

4.4 检测整个网段主机否在在线

[root@www.lutixia.cn ~]# fping -aqg 192.168.0.0/24
192.168.0.1
...(省略部分ip)
192.168.0.130
192.168.0.253 is unreachable
192.168.0.254 is unreachable

4.5 只显示在线的主机

[root@www.lutixia.cn ~]# fping -aqg 192.168.0.0/24
192.168.0.1
...(省略部分ip)
192.168.0.130

4.6 显示局域网宕机的主机:

[root@www.lutixia.cn ~]# fping -uqg 192.168.0.0/24
...(省略部分ip)
192.168.0.252
192.168.0.253
192.168.0.254

4.7 只显示检测的统计结果:

[root@www.lutixia.cn ~]# fping -sqg 192.168.0.0/24 

     254 targets
      12 alive
     242 unreachable
       0 unknown addresses

     251 timeouts (waiting for response)
    1007 ICMP Echos sent
      12 ICMP Echo Replies received
     937 other ICMP received

 0.03 ms (min round trip time)
 0.93 ms (avg round trip time)
 2.03 ms (max round trip time)
       27.660 sec (elapsed real time)

赶紧来试试吧~

标签: none

添加新评论