当前位置: 首页 > 工具软件 > 2ping > 使用案例 >

shell脚本ping 判断IP(192.168.$1.$2)通断

弘思聪
2023-12-01

ping 判断IP通断


#!/bin/bash
start_time=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
m_ping() {
ip=192.168.$1.$2
ping -c2 -i0.1 -W1 $ip  &>/dev/null
if [ $? -eq 0 ];then
    # echo "$ip is up "
     echo "$ip is up"  >> temfileup.txt
     echo "---$ip up---" | tr -d '\n'
else
#     echo "$ip is down"
     echo "$ip is down"  >> temfiledown.txt

fi
}
num=100
#创建命令管道文件,并绑定文件描述符,创建其文件描述,通过重>定向将数据导入管道文件
pipefile="/tmp/multiping_$$.tmp"
mkfifo $pipefile
exec 12<>$pipefile
for i in `seq $num`
  do
 echo "" >&12 &
  done

for n4 in {1..25}
   do
for n3 in {1..254}
do
read -u12
  {
  m_ping $n3 $n4
  echo "" >&12
  } &
   done
   done
wait
num_up=`sed -n '$=' temfileup.txt`
num_down=`sed -n '$=' temfiledown.txt`
echo "/n"
echo "ping_up数:$num_up"
echo "ping_down数:$num_down"
rm -rf $pipefile
rm -rf temfileup.txt
rm -rf temfiledown.txt
finish_time=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`

run_time=$(($(($(date +%s -d "$finish_time")-$(date +%s -d "$start_time")))))

echo "脚本运行时间: $run_time"

 

 类似资料: