前兩天接到了一個新的需求,需要在linux shell腳本中監控到mongodb最大連接配接數、記憶體使用情況等。
但是我對于linux shel很不了解,隻是會一些簡單常用的linux的操作而已,隻要一頓狂搜,最終多番嘗試下終于擷取到這些值。
成功的步驟大緻如下:
0、
把mongodb監控到的一行資料以json格式寫入到aaa.txt檔案中
1、
讀取aaa.txt中的内容并指派給a
擷取mapped映射到記憶體的資料大小:
2、
擷取字元串變量a中的子字元串“mapped”的下标,并指派給indma
3、
給變量ind加8,把結果指派給indma1
4、
擷取字元串變量a中的子字元串“netin”的下标,并指派給indma0
5、
給變量indma0減4,把結果指派給indma2
6、
擷取字元串a中下标indma1到indma2之間的子字元串并指派給mastr,即mapped的值
擷取實體記憶體使用量:
7、
擷取字元串變量a中的子字元串“res”的下标,并指派給indre
8、
給變量indre加5,把結果指派給indre1
9、
擷取字元串變量a中的子字元串“time”的下标,并指派給indre0
10、
給變量indre0減4,把結果指派給indre2
11、
擷取字元串a中下标indre1到indre2之間的子字元串并指派給restr,即res的值
擷取虛拟記憶體使用量:
12、
擷取字元串變量a中的子字元串“vsize”的下标,并指派給indvs
13、
給變量indvs加5,把結果指派給indvs1
14、
擷取字元串變量a的總長度
15、
給變量indvs0減3,把結果指派給indvs2
16、
擷取字元串a中下标indvs1到indvs2之間的子字元串并指派給vsstr,即vsize的值
擷取目前連接配接數:
17、
擷取字元串變量a中的子字元串“conn”的下标,并指派給indco
18、
給變量indco加6,把結果指派給indco1
19、
擷取字元串變量a中的子字元串“delete”的下标,并指派給indco0
20、
給變量indco0減4,把結果指派給indco2
21、
擷取字元串a中下标indco1到indco2之間的子字元串并指派給costr,即conn的值
最大連接配接數819,空閑連接配接數可以根據最大連接配接數和目前連接配接數算出來。