zoukankan      html  css  js  c++  java
  • shell之局域网内脚本检查主机网络通讯(附并发改写)

    转至:https://blog.csdn.net/yrx420909/article/details/104355825

    需求:写一个脚本,局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件内,以172.25.254.1~172.25.254.10为例。

    #!/bin/bash
    #定义变量
    ip=172.25.254
    #循环去ping主机的ip
    for ((i=1;i<=10;i++))
    do
    ping -c1 $ip.$i &>/dev/null
    if [ $? -eq 0 ];then
    echo "$ip.$i is ok" >> /tmp/ip_up.txt
    else
    echo "$ip.$i is down" >> /tmp/ip_down.txt
    fi
    done
    [root@localhost lianxi]# time sh ping.sh
    
    real    0m24.067s
    user    0m0.003s
    sys    0m0.008s

    可以看到,所需要消耗的时间很久才能完成ip的通讯检测。
    因此,为了加快速度,改写为并发执行

    #!/bin/bash
    #定义变量
    ip=172.25.254
    #循环去ping主机的ip
    for ((i=1;i<=10;i++))
    do
    {
    ping -c1 $ip.$i &>/dev/null
    if [ $? -eq 0 ];then
    echo "$ip.$i is ok" >> /tmp/ip_up.txt
    else
    echo "$ip.$i is down" >> /tmp/ip_down.txt
    fi
    }&
    done
    wait
    echo "ip detect is ok"
    [root@localhost lianxi]# time sh ping.sh 
    ip detect is ok
    
    real    0m3.018s
    user    0m0.004s
    sys    0m0.009s

    可以发现,并发执行的时间明显缩短。


    ————————————————
    版权声明:本文为CSDN博主「新是一切的根源」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yrx420909/article/details/104355825

  • 相关阅读:
    JZOJ 5947.初音未来(miku)
    JZOJ 2020.07.27【NOIP提高组】模拟
    Prufer序列 学习笔记
    JZOJ 5033. 【NOI2017模拟3.28】A
    c# Winform实现中国省份地图
    c# Custom Controls
    c#实现播放器的集中方式
    c# GDI+绘制不同字体的字符串
    比较好的博客和文章记录
    CSS设置元素居中的方法
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/14451051.html
Copyright © 2011-2022 走看看