|
#!/bin/bash DATE=`date -d "-1 min" +%Y%m%d-%H%M`
active="off"
DATE_s=`date -d "-1 min" +%Y%m%d-%H%M`
MAILLOG=/usr/local/smokeping/var/alert_logs/alertmail.$DATE ##日志中获取
MAILLIST="@@@@@@@.#@@com"
num=$((`cat $MAILLOG |egrep -v "#|$(date +%Y)*|someloss|lossdetect|^$"|wc -l`/4))
>/home/3jia5om/scripts/html_tmp
htmla=`echo -e 'table{border-collapse:collapse;border-spacing:0;background-color:transparent}.table{width:90%;max-width:95%;margin-bottom:20px}.table>tbody>tr>td{padding:6px 4px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd;text-align:center;font-size:11px;width:40px}.table-condensed>tbody>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>tbody>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table>tbody>tr.active>td{background-color:#f5f5f5}.table>tbody>tr.warning>td{background-color:#fcf8e3}.table>tbody>tr.info>td{background-color:#d9edf7}.table>tbody>tr.danger>td{background-color:#f2dede}.table>tbody>tr.success>td{background-color:#dff0d8}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05);width:760px}.panel-heading{border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-info{border-color:#bce8f1;}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}span{margin-right:20px}ul li{list-style:none;float:left;line-height:34px}.me{margin-left:13%}.gaodu{height:30px}.zuo{text-align:left;margin-left:10px}'`
if [ -f $MAILLOG ];then
s_add=(`cat $MAILLOG |grep CDN|awk -F "[][]" '{print $1,$2}'|awk '{print $3}'`) ##切出来自IP
d_add=(`cat $MAILLOG |grep CDN|awk -F "[][]" '{print $1,$2}'|awk '{print $1}'`) ##切出来自名称
else
exit 0
fi
if [ -f $MAILLOG ];then
countnum=0
##循环主体
for i in `seq 1 $num`
do
on='on'
content=`cat $MAILLOG |egrep -v "#|$(date +%Y)*|someloss|lossdetect|^$"|sed -n $[($i-1)*4+1],$[$i*4+1]p`
"***.***.**.***|***.***.**.***|***.***.**.***|***.***.**.***|***.***.**.***|***.***.**.***|***.***.**.***"`
head=`echo $content|sed -n 1p`
lost=`cat $MAILLOG |egrep -v "#|$(date +%Y)*|someloss|lossdetect|^$"|sed -n $[($i-1)*4+1],$[$i*4+1]p|sed -n 2p|awk -F ":" '{print $2}'|sed 's/[[:space:]]//g'`
rtt=`cat $MAILLOG |egrep -v "#|$(date +%Y)*|someloss|lossdetect|^$"|sed -n $[($i-1)*4+1],$[$i*4+1]p|sed -n 3p|awk -F ":" '{print $2}'|sed 's/[[:space:]]//g'`
to=` cat $MAILLOG |egrep -v "#|$(date +%Y)*|someloss|lossdetect|^$"|sed -n $[($i-1)*4+1],$[$i*4+1]p|sed -n 4p`
add=`echo $head|awk -F "[][]" '{print $1,$2}'|awk '{print $3}'`
#echo $add|wc -L
if [ `echo $add|wc -L` -lt 7 ];then
add="***.***.**.***"
fi
hostname=`echo $head|awk '{print $1}'|awk -F "." '{print $NF}'`
ushote=`echo $head|awk -F "[][]" '{print $1,$2}'|awk -F "." '{print $1}'`
count=0
counts=0
for line in `cat /home/3jia5om/scripts/black.somkeping`
do
count=$[$count+1]
if [ $[$count%2] -eq 1 ];then
blackname=$line
#echo $blackname
else
blackip=$line
fi
if [ $count -ge 2 ];then
if [[ $hostname == $blackname ]];then
blackip=${blackip//,/ }
for ip in $blackip
do
#echo $ip
if [[ $add == $ip ]];then
active="on"
counts=$[$counts+1]
#echo "状态激活"
echo "`date +%Y'-'%m'-'%d' '%H':'%M':'%S` 报警节点:$blackname 来自IP:$ip 被手动屏蔽。" >>/home/3jia5om/scripts/alert.log
fi
done
fi
count=0
fi
done
#echo $active
if [[ $active == $on ]];then
#echo "1111"
active="off"
continue
fi
echo ''>>/home/3jia5om/scripts/html_tmp
echo "报警节点:$hostname所属线路:$ushote来自IP:$add">>/home/3jia5om/scripts/html_tmp
echo ''>>/home/3jia5om/scripts/html_tmp
echo -e "Loss:$(echo $lost|awk -F "," '{print $1}')$(echo $lost|awk -F "," '{print $2}')$(echo $lost|awk -F "," '{print $4}')$(echo $lost|awk -F "," '{print $5}')$(echo $lost|awk -F "," '{print $6}')$(echo $lost|awk -F "," '{print $7}')$(echo $lost|awk -F "," '{print $8}')$(echo $lost|awk -F "," '{print $9}')$(echo $lost|awk -F "," '{print $10}')$(echo $lost|awk -F "," '{print $11}')$(echo $lost|awk -F "," '{print $12}')$(echo $lost|awk -F "," '{print $13}')$(echo $lost|awk -F "," '{print $14}')$(echo $lost|awk -F "," '{print $15}')$(echo $lost|awk -F "," '{print $16}')$(echo $lost|awk -F "," '{print $17}')$(echo $lost|awk -F "," '{print $18}')$(echo $lost|awk -F "," '{print $19}') Rtt:$(echo $rtt|awk -F "," '{print $1}')$(echo $rtt|awk -F "," '{print $2}')$(echo $rtt|awk -F "," '{print $4}')$(echo $rtt|awk -F "," '{print $5}')$(echo $rtt|awk -F "," '{print $6}')$(echo $rtt|awk -F "," '{print $7}')$(echo $rtt|awk -F "," '{print $8}')$(echo $rtt|awk -F "," '{print $9}')$(echo $rtt|awk -F "," '{print $10}')$(echo $rtt|awk -F "," '{print $11}')$(echo $rtt|awk -F "," '{print $12}')$(echo $rtt|awk -F "," '{print $13}')$(echo $rtt|awk -F "," '{print $14}')$(echo $rtt|awk -F "," '{print $15}')$(echo $rtt|awk -F "," '{print $16}')$(echo $rtt|awk -F "," '{print $17}')$(echo $rtt|awk -F "," '{print $18}')$(echo $rtt|awk -F "," '{print $19}')目标IP:$to">>/home/3jia5om/scripts/html_tmp
countnum=$(($countnum+1))
done
htmlb=`cat /home/3jia5om/scripts/html_tmp`
htmlc=""
htmla=$htmla$htmlb$htmlc
if [ $countnum -gt 0 ];then
#echo $htmla
echo $htmla| mail -s "$(echo -e "[SmokeAlert] is active on $DATE $MAILLIST \nContent-Type:text/html;charset=utf-8")" -r "somkeping" $MAILLIST
dsg="`echo $2 $4`"
#/usr/bin/curl -d "group=IDCswitch&subject=\"IDC network quality smokeping alert\"&msg=$Msg" http://*.*.*.*/msgserver/sendinfo.jsp >/dev/null 2>&1
#这里是短信接口
fi
else
echo ok
fi
|
|