zoukankan      html  css  js  c++  java
  • Linux shell ping命令多并发

    #!/bin/bash
    #多线程批量ping,有时候多线程使用&过多,会导致系统崩溃
    #用此方法可以进行多并发
    
    #创建5个进程
    thread=5
    #创建管道文件
    tem_fifofile=/tmp/$$.fifo
    mkfifo $tmp_fifofile
    exec 8<> $tmp_fifofile
    rm $tmp_fifofile
    #删除文件描述符8,并不会正在的删除此文件,此文件还存在
    for i in 'seq $thread'
    do
        echo >&8
        #创建一个管道文件,向里面传入了空值,其实随便什么都行。
    done
    for i in {1....254}
    do 
        read -u 8
        #read -u 这个参数是读取文件描述符 8,如果文件描述符中没有东西,那就一直会等待。
        {
        ip=192.168.1.$i
        ping -c1 -W $ip &>/dev/null
        if [ $? -eq 0 ];then
            echo "$ip is up"
        else
            echo "$ip is down"
        fi
    
        echo >&8
        #执行完后,文件描述符没东西了,那就要再添加进去,不然没得读了,也没得取了。
        }&
        #整体来说就是一次就5个5个来进行多并发,就怕多了导致系统有问题
    done
    wait
    #用户暂停当前进程并释放该进程持有的所有资源。
    echo "ping 完了~~~"
    人生苦短,我用Python
  • 相关阅读:
    蒸发冷却概述
    2011年2月22日星期2
    在中国搞技术的都是狗
    实用新型专利申请书规范
    我小时候家里穷
    蒸发冷却基本原理
    opera浏览器使用技巧
    浏览器哪个好用
    Matlab数理统计工具箱应用简介(转)
    EXCEL模板读写说明(转)
  • 原文地址:https://www.cnblogs.com/sunjinchao/p/14413581.html
Copyright © 2011-2022 走看看