我的需求是PING这个地址 只要延迟高于100ms就发送个邮件 然后正常后在发个邮件通知 之后正常不发 一有延迟就发 我这个老是重复 求高人指点 #!/bin/bashIP=`ping 8888 -c 3|sed -n "2p" |awk '{print $7}'|cut -f 2 -d "="|cut -f 1 -d ""`L='100'a='tail -1 /opt/texttxt' | sed -n '1p'i='tail -1 /opt/text1txt' | sed -n '1p'echo "$IP" >> /opt/texttxtecho "$IP" >> /opt/text1txtif [[ $a -le $L ]]thenmail -s 'yanchi' 邮箱 < ar/log/bootlogelif [[ $a -ge $L ]];thenmail -s 'huifu' 邮箱 < ar/log/bootlogelseecho "ok"fi~我是想把这个延迟数写进一个文件里进行对比 延迟是会报 但是正常后不报 ,而且正常情况下运行还会发送 谁能帮忙看看
#!/bin/bash
Timeout=0;
Timeout_limit=1;
Timeout_flag=0;
IP="8888"
while [ 1 ]
do
# 取平均延迟的整数位
Timeout="`ping $IP -c 3 | grep 'min/avg/max/mdev'|awk '{print $4}'|cut -b '7'`"
if [ $Timeout -ge $Timeout_limit ] && [ $Timeout_flag -ne 1 ]; then
echo ping timeout, average delay=$Timeout ms
mail -s 'Ping Delay' 邮箱 < ar/log/bootlog
Timeout_flag=1
fi
if [ $Timeout -lt $Timeout_limit ] && [ $Timeout_flag -ne 0 ]; then
echo ping recovery, average delay=$Timeout ms
mail -s 'Ping recovery' 邮箱 < ar/log/bootlog
Timeout_flag=0
fi
sleep 5
done第三行Timeout_limit值写错了,应该是100哈,代码提交了不能改了。你这个不需要把延迟结果保存在文件的,而是应该需要作定时检测的。
现在一般很少使用shellexecute这个函数了
取而代之的是ShellExecuteEx()
它有一个结构体,自己可以指明 cmd /K ping xxxx即可
用cmd来执行ping
#!/bin/bash
while :
do
#包大小
PACKETSIZE=32
#发包数
PACKETTIMES=10
#间隔时间
INTERVAL=1
#ip列表文件位置
IPFILE=/tmp/1
#多长时间测试一次(秒)
SLEEPTIME=60
#临时文件
TMP=/tmp/pingtmp
#输出的pingtxt文件路径
OUTPUT=/tmp/pingtxt
#本机IP(这都不知道自己切JJ)
HOSTIP=1111
while read line
do
> ${TMP}
ping -c ${PACKETTIMES} -i ${INTERVAL} -s ${PACKETSIZE} $line >> ${TMP}
DELAY=`grep rtt ${TMP} | awk '{print$4}' |awk -F "/" '{print$1"/"$2"/"$3}'`
LOST=`grep loss ${TMP} |awk -F "%" '{print$1"%"}'|awk '{print $NF}' `
DATE=`date +"%Y-%m-%d %H:%M:%S"`
if [ -z "${DELAY}" ]
then
DELAY=none
fi
echo "################################################" >> ${OUTPUT}
echo "${DATE} ${HOSTIP} > ${line} the min/avg/max is ${DELAY} and packets lost ${LOST}" >> ${OUTPUT}/pingtxt
rm -rf ${TMP}
done<${IPFILE}
sleep ${SLEEPTIME}
done
= =缺点是 运行时候 要加个 /脚本 & 后台执行
以上就是关于linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发全部的内容,包括:linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发、Linux下shell脚本PING命令只要延迟高于100ms就发送个邮件、请教用ShellExecute怎么调用ping程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)