前段搞了一個根據丢包權重判斷是否發送報警通知的一個腳本,互相學習學習:
腳本檔案如下:
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
<code># cat checkUser.sh</code>
<code>#!/bin/bash</code>
<code>export</code> <code>PATH=</code><code>/usr/local/sbin</code><code>:</code><code>/usr/local/bin</code><code>:</code><code>/sbin</code><code>:</code><code>/bin</code><code>:</code><code>/usr/sbin</code><code>:</code><code>/usr/bin</code><code>:</code><code>/root/bin</code>
<code>log_time=`</code><code>date</code> <code>+</code><code>"%Y-%m-%d-%H-%M-%S"</code><code>`</code>
<code>for</code> <code>i </code><code>in</code> <code>`</code><code>cat</code> <code>/root/bin/country</code><code>.txt | </code><code>grep</code> <code>-</code><code>v</code> <code>'^$'</code> <code>| </code><code>awk</code> <code>-F </code><code>':'</code> <code>'{print $1}'</code><code>`;</code><code>do</code>
<code> </code><code>#echo $i</code>
<code> </code><code>surecountry=`</code><code>cat</code> <code>/tmp/checkUserLag</code><code>.txt | </code><code>grep</code> <code>$i`</code>
<code> </code><code>if</code> <code>[ </code><code>"$?"</code> <code>-</code><code>eq</code> <code>0 ];</code><code>then</code>
<code> </code><code>#echo $surecountry</code>
<code> </code><code>Weightnum=`</code><code>cat</code> <code>/root/bin/country</code><code>.txt | </code><code>grep</code> <code>$i | </code><code>awk</code> <code>-F</code><code>'#'</code> <code>'{print $1}'</code> <code>| </code><code>awk</code> <code>-F </code><code>':'</code> <code>'{print $2}'</code><code>`</code>
<code> </code><code>Weightloss=`</code><code>cat</code> <code>/root/bin/country</code><code>.txt | </code><code>grep</code> <code>CN | </code><code>awk</code> <code>-F</code><code>'#'</code> <code>'{print $1}'</code> <code>| </code><code>awk</code> <code>-F </code><code>':'</code> <code>'{print $3}'</code><code>`</code>
<code> </code><code>Content=`</code><code>cat</code> <code>/tmp/checkUserLag</code><code>.txt | </code><code>grep</code> <code>$i`</code>
<code> </code><code>#echo $Content</code>
<code> </code><code>Numpre=`</code><code>cat</code> <code>/tmp/checkUserLag</code><code>.txt | </code><code>grep</code> <code>$i | </code><code>awk</code> <code>-F </code><code>','</code> <code>'{print $3}'</code> <code>| </code><code>awk</code> <code>-F </code><code>"[()]"</code> <code>'{print $2}'</code> <code>| </code><code>cut</code> <code>-d % -f 1 | </code><code>cut</code> <code>-d . -f 1`</code>
<code> </code><code>Losspre=`</code><code>cat</code> <code>/tmp/checkUserLag</code><code>.txt | </code><code>grep</code> <code>$i | </code><code>awk</code> <code>-F </code><code>','</code> <code>'{print $4}'</code> <code>| </code><code>awk</code> <code>-F </code><code>':'</code> <code>'{print $2}'</code> <code>| </code><code>cut</code> <code>-d % -f 1 | </code><code>cut</code> <code>-d . -f 1`</code>
<code> </code><code>echo</code> <code>$i weight: $Weightnum $Weightloss waring : $Numpre $Losspre</code>
<code> </code><code>if</code> <code>[ </code><code>"${Numpre}"</code> <code>-</code><code>ne</code> <code>"0"</code> <code>-o </code><code>"${Losspre}"</code> <code>-</code><code>ne</code> <code>"0"</code> <code>];</code><code>then</code>
<code> </code><code>#echo $i $Weightnum $Weightloss $Numpre $Losspre</code>
<code> </code><code>if</code> <code>[ </code><code>"${Numpre}"</code> <code>-</code><code>ge</code> <code>"${Weightnum}"</code> <code>-o </code><code>"${Losspre}"</code> <code>-</code><code>ge</code> <code>"${Weightloss}"</code> <code>];</code><code>then</code>
<code> </code><code>echo</code> <code>"server3 ${Content} .Contact CQ or Jacky"</code> <code>| skypealarm -c</code>
<code> </code><code>res=$?</code>
<code> </code><code>echo</code> <code>${res} >> </code><code>/tmp/UserLag</code><code>.log</code>
<code> </code><code>echo</code> <code>"${log_time} ${Content}"</code> <code>>> </code><code>/tmp/UserLag</code><code>.log</code>
<code> </code><code>#echo "$Numpre > $Weightnum or ${Losspre} > ${Weightloss}"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"server3 ${Content}"</code> <code>| skypealarm -w</code>
<code> </code><code>#echo "$Numpre < $Weightnum or ${Losspre} < ${Weightloss}" </code>
<code> </code><code>fi</code>
<code> </code><code>fi</code>
<code> </code><code>fi</code>
<code>done</code>
權重設定的檔案:
<code># cat country.txt </code>
<code>KR:10:10</code>
<code>HK:10:10</code>
<code>CN:10:15</code>
<code>JP:10:10</code>
<code>TW:10:10</code>
丢包統計和通路有延遲的使用者比例:
<code># cat checkUserLag.txt </code>
<code>CN,total:1572,num:92(5.852%),lost:9.732%</code>
<code>VN,total:518,num:73(14.092%),lost:9.266%</code>
本文轉自青衫解衣 51CTO部落格,原文連結:http://blog.51cto.com/215687833/1946139