天天看點

網絡丢包監控腳本

前段搞了一個根據丢包權重判斷是否發送報警通知的一個腳本,互相學習學習:

腳本檔案如下:

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} &gt;&gt; </code><code>/tmp/UserLag</code><code>.log</code>

<code>                      </code><code>echo</code> <code>"${log_time} ${Content}"</code> <code>&gt;&gt; </code><code>/tmp/UserLag</code><code>.log</code>

<code>                </code><code>#echo "$Numpre &gt; $Weightnum or ${Losspre} &gt; ${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 &lt; $Weightnum or ${Losspre} &lt; ${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