批量ping脚本

元气满满
2026-01-23 / 0 评论 / 0 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2026年03月12日,已超过229天没有更新,若内容或图片失效,请留言反馈。

批量ping脚本

  • 将ip地址存放到ip.txt文件中,然后执行ping.sh脚本

    #!/usr/bin/env bash
    
    some_function(){
      ip=$(hostname -I | awk '{print $1}')
      echo "Local IP: $ip" > ./${ip}-ping.txt
      alls=$(cat ip.txt | wc -l)
      us=0
      
      echo "Ping Test Progress ($alls targets):"
      echo "-----------------------------------"
      
      while IFS= read -r i
      do
          # 执行ping测试
          if ping -c 1 -W 2 $i > /dev/null 2>&1; then
              result="✓"
              echo "ping $i success" >> ./${ip}-ping.txt
          else
              result="✗"
              echo "ping $i timeout" >> ./${ip}-ping.txt
          fi
          
          us=$((us + 1))
          percent=$(( us * 100 / alls ))
          
          # 显示IP和结果
          printf "\r[%3d%%] %-15s %s" "$percent" "$i" "$result"
          
          # 如果终端不支持Unicode,使用以下替代:
          # printf "\r[%3d%%] %-15s %s" "$percent" "$i" "$([ "$result" = "✓" ] && echo "OK" || echo "FAIL")"
          
      done < ./ip.txt
      
      echo # 换行
      echo "-----------------------------------"
      
      # 显示统计结果
      success_count=$(grep -c "success" ./${ip}-ping.txt 2>/dev/null || echo "0")
      timeout_count=$(grep -c "timeout" ./${ip}-ping.txt 2>/dev/null || echo "0")
      
      echo "Summary:"
      echo "  Success: $success_count"
      echo "  Timeout: $timeout_count"
      echo "  Full results in: ./${ip}-ping.txt"
    }
    
    some_function

执行输出

t-03.png

0

评论 (0)

取消