linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发

linux 求助shell脚本 ping命令延迟超过100ms的包就发邮件 恢复正常也发个邮件 之后不用发,第1张

我的需求是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 ] &amp;&amp; [ $Timeout_flag -ne 1 ]; then

echo ping timeout, average delay=$Timeout ms

mail -s 'Ping Delay' 邮箱 &lt; ar/log/bootlog

Timeout_flag=1

fi

if [ $Timeout -lt $Timeout_limit ] &amp;&amp; [ $Timeout_flag -ne 0 ]; then

echo ping recovery, average delay=$Timeout ms

mail -s 'Ping recovery' 邮箱 &lt; 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程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10087483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存