服务器多如果用ping来检测不实际,所以楼主想到了nmap,个人感觉方法还是很有难度的,写的比较巧妙



#!/bin/bash
nmap -v -sn 192.168.0.0/24|grep "host down"|awk '{print $5}'|grep -v "192.168.0.2[2-5][0-9]" > /opt/nmap/down.txt
while read line
do
cat /opt/nmap/ip.txt|grep "$line$" >> /opt/nmap/error.txt
#sh /www/shell/syslog_2.sh $i-ping-error $i 1 2 1 6
#echo `cat /opt/nmap/ip.txt|sed -n '/'$line'/'p`
done < /opt/nmap/down.txt
a=`cat /opt/nmap/error.txt|wc -l`
b=`cat /opt/nmap/error.txt`
if [ "$a" -gt 0 ]; then
sh /www/shell/syslog_2.sh $b-ping-error $b 1 2 1 6
echo $b
fi
rm -f /opt/nmap/down.txt
rm -f /opt/nmap/error.txt