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

目前只有检测IP是否畅通的,想修改脚本增加检测服务器IP的掉宝率的,比如掉宝率超过40%触发Email通知,掉包80%出发Email通知,麻烦帮忙修改一下吧,谢谢!rma... 目前只有检测IP是否畅通的,想修改脚本增加检测服务器IP的掉宝率的,比如掉宝率超过40%触发Email通知,掉包80%出发Email通知,麻烦帮忙修改一下吧,谢谢!
rmail=12345@qq.com
export LANG=zh_CN.UTF-8
ping -c5 192.168.1.10 &>/dev/null
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
echo "" >/tmp/pkgloss.txt
展开
 我来答
jinxingvenus
2014-09-16 · TA获得超过4790个赞
知道大有可为答主
回答量:2703
采纳率:64%
帮助的人:3175万
展开全部

解答:

#!/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:
更多追问追答
追问
我测试了,还是不行呢,if [ "$?" != "0" ];这个时候可以发出来邮件,其他掉包的情况就发不出来,和之前的情况一样!
追答
应该不会啊,
你可以将/tmp/ping.txt中loss直接改成41或者 81
你的要求是超过40和80才发送邮件。
所以是-gt。如果你尝试文本中是40,那要改成-ge
发送邮件只和判断有关,如果你第一段可以发送的话。
chaoningwang
2014-09-16 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:889万
展开全部
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看看是不是第七列,不是的话按照实际情况修改一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式