想找RedHat Linux的shell脚本,用于检测服务器的IP、丢包率,当丢包率超过40%时Email告警,谢谢!

发布网友

我来回答

2个回答

热心网友

解答:

#!/bin/bash

rmail=12345@qq.com
export LANG=zh_CN.UTF-8
ping -c50 192.168.1.10 >/tmp/ping.txt
if [ "$?" != "0" ]; then
   echo "`date +"%Y-%m-%d %H:%M:%S"`  IP地址:192.168.1.10  网络不通,请检查网络!"  >>/tmp/pkgloss.txt
   mail -s "测试IP网络异常报警"  $rmail</tmp/pkgloss.txt
fi
loss1=`cat /tmp/ping.txt |grep loss|awk '{print $6}'|awk -F% '{print $1}'`
if [ $loss1 -gt 40 ]; then
   echo "`date +"%Y-%m-%d %H:%M:%S"`  IP地址:192.168.1.10  丢包率超过40"  >>/tmp/pkgloss.txt
   mail -s "测试IP网络异常报警"  $rmail</tmp/pkgloss.txt
fi
if [ $loss1 -gt 80 ]; then
   echo "`date +"%Y-%m-%d %H:%M:%S"`  IP地址:192.168.1.10  丢包率超过80"  >>/tmp/pkgloss.txt
   mail -s "测试IP网络异常报警"  $rmail</tmp/pkgloss.txt
fi
   echo "" >/tmp/pkgloss.txt:

热心网友

ping -c5 192.168.1.10 > result.txt
results=tail -n 1 result.txt | awk '{print $7}'
if [$reults -ge 40%]
用这三行替换你的ping语句和if条件就行了追问不行,掉包的时候还是不能发出邮件!

追答你把代码直接粘过去的吧?
在上面三行代码中,数字1是文件倒数第一行的意思,打开你的result.txt看看丢包信息是不是倒数第一行,不是的话按照实际情况修改一下;
$7是丢包信息所在行中丢包率对应的列数,查可能result看看是不是第七列,不是的话按照实际情况修改一下

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com