shell

批量ping脚本

admin · 7月2日 · 2020年

一个自用的批量ping脚本

#!/bin/bash
#set -x
temp_log='/root/log_temp.log'
log='/root/n2n.log'
list="/root/list.conf"
sleep 1
cat /dev/null > $temp_log
cat $list |while read line; do
time=`date +%H:%M:%S`
{
number=`awk 'BEGIN {split("'"$line"'",arr,"*");print arr[1]}'`
ip=`awk 'BEGIN {split("'"$line"'",arr,"*");print arr[2]}'`
name=`awk 'BEGIN {split("'"$line"'",arr,"*");print arr[3]}'`

  if ping -c 1 $ip >/dev/null;then
      i='[OK]'
  else
      i='[!!]'
  fi
  echo -e "$ip \t$i-$time $number-$name"  >>$temp_log
}&
done
sleep 10
grep OK $temp_log | sort -t. -k4 -n >$log
grep '!!' $temp_log | sort -t . -k4 -n >>$log
j=`grep OK $temp_log | sed -n '$='`
k=`grep '!!' $temp_log | sed -n '$='`
echo -e "在线设备数:$j  离线设备数:$k   设备总数:$l" >>$log
rm -f $temp_log

list.conf的格式:ID*IP*NAME