zoukankan      html  css  js  c++  java
  • Linux下批量ping某个网段ip的脚本

    比如现在需要对172.16.50.0/24网段的ip进行检查,检查哪些ip现在被占用,哪些ip没有被占用,可以通过ping命令来检查,脚本如下:

    [root@uatdns01 opt]# vim /opt/ping.sh 
    #!/bin/bash
    . /etc/init.d/functions
    for var in {1..254};
    do
    ip=172.16.50.$var
    ping -c2 $ip >/dev/null 2>&1
    if [ $? = 0 ];then
    action "$ip" /bin/true
    else
    action "$ip" /bin/false
    fi
    done
    
    [root@uatdns01 opt]# chmod 755 /opt/ping.sh
    [root@uatdns01 opt]# sh /opt/ping.sh
    172.16.50.1                                                [  OK  ]
    172.16.50.2                                                [FAILED]
    172.16.50.3                                                [FAILED]
    172.16.50.4                                                [FAILED]
    172.16.50.5                                                [FAILED]
    .........
    .........
    172.16.50.99                                             [  OK  ]
    172.16.50.100                                            [  OK  ]
    172.16.50.101                                            [  OK  ]
    172.16.50.102                                            [  OK  ]
    172.16.50.103                                            [  OK  ]
    172.16.50.104                                            [  OK  ]
    172.16.50.105                                            [  OK  ]
    172.16.50.106                                            [  OK  ]
    172.16.50.107                                            [  OK  ]
    172.16.50.108                                            [  OK  ]
    172.16.50.109                                            [  OK  ]
    172.16.50.110                                            [  OK  ]
    172.16.50.111                                            [FAILED]
    172.16.50.112                                            [  OK  ]
    

                                                                                                                                                                             

    获取172.16.60.0/24网段可用ip的shell脚本
    [root@ansible-server ~]# cat ip_ping.sh 
    #!/bin/bash 
    ip=1 
    while [ $ip != "254" ]; do 
    ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" 
    ip=`expr "$ip" "+" "1"` 
    done 
    
    执行:
    [root@ansible-server ~]# sh ip_ping.sh
    172.16.60.1 yes
    172.16.60.2 no
    172.16.60.3 no
    .............
    172.16.60.24 yes
    172.16.60.25 yes
    172.16.60.26 no
    .............
    
    如果只打印可用ip, 则脚本修改如下:
    [root@ansible-server ~]# cat ip_ping.sh
    #!/bin/bash 
    ip=1 
    while [ $ip != "254" ]; do 
    ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1
    ip=`expr "$ip" "+" "1"` 
    done 
    
    执行:
    [root@ansible-server ~]# sh ip_ping.sh
    172.16.60.1 yes
    172.16.60.21 yes
    172.16.60.22 yes
    172.16.60.23 yes
    172.16.60.24 yes
    172.16.60.25 yes
    172.16.60.31 yes
    172.16.60.32 yes
    172.16.60.33 yes
    172.16.60.34 yes
    172.16.60.35 yes
    172.16.60.36 yes
    172.16.60.37 yes
    172.16.60.38 yes
    172.16.60.39 yes
    
    
    获取172.16.50.0/24, 172.16.51.0/24, 172.16.60.0/24 三个网段的可用ip
    [root@ansible-server ~]# cat ip_ping.sh
    #!/bin/bash 
    ip=1 
    while [ $ip != "254" ]; do 
    
    ping 172.16.50.$ip -c 2 | grep -q "ttl=" && echo "172.16.50.$ip yes" || echo "172.16.50.$ip no" >/dev/null 2>&1
    ip=`expr "$ip" "+" "1"` 
    
    ping 172.16.51.$ip -c 2 | grep -q "ttl=" && echo "172.16.51.$ip yes" || echo "172.16.51.$ip no" >/dev/null 2>&1
    ip=`expr "$ip" "+" "1"` 
    
    ping 172.16.60.$ip -c 2 | grep -q "ttl=" && echo "172.16.60.$ip yes" || echo "172.16.60.$ip no" >/dev/null 2>&1
    ip=`expr "$ip" "+" "1"` 
    
    done 
    
    执行:
    [root@ansible-server ~]# sh ip_ping.sh
    172.16.50.1 yes
    172.16.51.11 yes
    172.16.50.16 yes
    172.16.50.19 yes
    172.16.51.20 yes
    172.16.60.21 yes
    172.16.50.22 yes
    172.16.60.24 yes
    172.16.50.25 yes
    172.16.50.31 yes
    172.16.60.33 yes
    172.16.51.35 yes
    172.16.60.36 yes
    172.16.60.39 yes
    172.16.51.41 yes
    172.16.51.44 yes
    172.16.50.52 yes
    172.16.51.53 yes
    172.16.50.55 yes
    172.16.50.58 yes
    172.16.51.65 yes
    ..................
  • 相关阅读:
    pdf 去水印 比较好用
    ffmpeg从视频中每隔几秒提取一张图片
    tampermonkey 网盘直链下载助手
    淘工厂买的usb 蓝牙5.0 外置台式机 适配器(下载)
    Apache Doris 轻松入门和快速实践
    一步一步编译最新版Apache Doris 0.15版本的详细过程
    go使用msgpack
    服务接口杂谈
    关于真伪3层所讨论的
    jattach最近的一些更新
  • 原文地址:https://www.cnblogs.com/kevingrace/p/9070402.html
Copyright © 2011-2022 走看看