shell天天见~扫描网络内存活主机

通过ping命令扫描网络内存活的主机,正常的思路是利用for循环一个一个去ping,然后判断是否平通。一个为c类网段最少有254台机器,如果一个ping需要1秒,则最少需要254秒。这样的速度显然是不能接受的。
有一个解决的办法是在循环中把每个ping的动作扔进后台执行,这样一来254台机器在1-3秒之内就全部扫描完毕。

1.脚本--扫描网络内存活主机

#!/bin/bash  
#  -------------+--------------------   
# * Filename    :       saomiao.sh           
# * Revision    :       2.0             
# * Date        :       2017-09-07
# * Author      :       Aubin           
# * Description :                       
#  -------------+---------------------
#       www.shuaiguoxia.com
#
net=172.18.252
for i in {1..254};do
        {
        if ping -c1 -w1 $net.$i &> /dev/null ;then
                echo "$net.$i [ up ]"
        fi
        }&        
done
wait

2.运行测试

在{......}&中的代码将扔进后台执行,正是因为有了后台机制,才能使254ping命令并行执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容