警告
本文最后更新于 2021-08-16,文中内容可能已过时。
脚本为网上查询结果,只做了稍微的修改,内容不难,请大家食用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/bin/bash
#
#####################################
#@brief 功能:监控网路丢包率和延迟 -s 是一个ping包的大小 -W 是延迟timeout -c 是发生多少数据包
#@author fcl
#@version 1.0
#@date 2021/08/16
#@log no
#####################################
#shell Env
#ping发包数
c_times=20
#IP列表数组
ip_arr=('172.16.48.213' '172.31.26.157' '10.0.2.158' '10.8.0.238' '10.3.1.45' '10.4.0.210' '10.11.1.1' '120.132.15.180' '106.75.219.4' '10.24.2.254')
for (( i = 0; i < ${#ip_arr[@]}; ++i ))
do
result=`timeout 16 ping -q -A -s 200 -W 250 -c $c_times ${ip_arr[i]}|grep transmitted|awk '{print $6,$10}'`
if [ -z "$result" ]
then
value_lostpk=101
value_rrt=9999
echo "ykt_lostpk_gt_jd ${value_lostpk}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
echo "ykt_rrt_gt_jd ${value_rrt}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
else
lostpk=$(echo $result|awk '{print $1}')
rrt=$(echo $result|awk '{print $2}')
value_lostpk=$(echo $lostpk | sed 's/%//g')
value_rrt=$(echo $rrt |sed 's/ms//g')
#value_rrt=$(($value_rrt/$c_times))
value_rrt=$(printf "%.5f" `echo "scale=5;$value_rrt/$c_times"|bc`)
echo "ykt_lostpk_gt_jd ${value_lostpk}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
echo "ykt_rrt_gt_jd ${value_rrt}" | curl --data-binary @- http://10.2.4.59:9091/metrics/job/ykt_icmp/instance/${ip_arr[i]}
fi
echo ${ip_arr[i]}"==="$value_lostpk"==="$value_rrt
done
|