想找RedHat Linux的shell脚本,用于检测服务器的IP、丢包率,当丢包率超过40%时Email告警,谢谢!
发布网友
发布时间:2022-04-21 05:43
我来回答
共2个回答
热心网友
时间:2023-11-06 01:51
解答:
#!/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:
热心网友
时间:2023-11-06 01:51
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看看是不是第七列,不是的话按照实际情况修改一下