批量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
执行输出

评论 (0)