linux shell中擷取mongodb最大串連數、記憶體使用量情況等__linux

來源:互聯網
上載者:User
前兩天接到了一個新的需求,需要在linux shell指令碼中監控到mongodb最大串連數、記憶體使用量情況等。
但是我對於linux shel很不瞭解,只是會一些簡單常用的linux的操作而已,只要一頓狂搜,最終多番嘗試下終於擷取到這些值。
成功的步驟大致如下:
0、
./mongostat -u admin -p admin --authenticationDatabase admin -n 1 --json >> aaa.txt 
把mongodb監控到的一行資料以json格式寫入到aaa.txt檔案中
1、  
a=`cat aaa.txt`   
讀取aaa.txt中的內容並賦值給a
擷取mapped映射到記憶體的資料大小:
2、
indma=`echo $a | awk '{printf("%d\n",match($0,"mapped"))}'` 
 擷取字串變數a中的子字串“mapped”的下標,並賦值給indma
3、
indma1=$(($indma+8)) 
給變數ind加8,把結果賦值給indma1
4、
indma0=`echo $a | awk '{printf("%d\n",match($0,"netIn"))}'`  
擷取字串變數a中的子字串“netIn”的下標,並賦值給indma0
5、
indma2=$(($indma0-4)) 
給變數indma0減4,把結果賦值給indma2
6、
mastr=`echo ${a:$indma1:$(($indma2-$indma1))}` 
擷取字串a中下標indma1到indma2之間的子字串並賦值給mastr,即mapped的值
擷取實體記憶體使用量:

7、
indre=`echo $a | awk '{printf("%d\n",match($0,"res"))}'` 
擷取字串變數a中的子字串“res”的下標,並賦值給indre
8、
indre1=$(($indre+5)) 
給變數indre加5,把結果賦值給indre1
9、
indre0=`echo $a | awk '{printf("%d\n",match($0,"time"))}'`  
擷取字串變數a中的子字串“time”的下標,並賦值給indre0
10、
indre2=$(($indre0-4)) 
給變數indre0減4,把結果賦值給indre2
11、
restr=`echo ${a:$indre1:$(($indre2-$indre1))}` 
擷取字串a中下標indre1到indre2之間的子字串並賦值給restr,即res的值
擷取虛擬記憶體使用量:

12、
indvs=`echo $a | awk '{printf("%d\n",match($0,"vsize"))}'` 
 擷取字串變數a中的子字串“vsize”的下標,並賦值給indvs
13、
indvs1=$(($indvs+7)) 
給變數indvs加5,把結果賦值給indvs1
14、
indvs0=${#a} 
擷取字串變數a的總長度
15、
indvs2=$(($indvs0-3)) 
給變數indvs0減3,把結果賦值給indvs2
16、
vsstr=`echo ${a:$indvs1:$(($indvs2-$indvs1))}` 
擷取字串a中下標indvs1到indvs2之間的子字串並賦值給vsstr,即vsize的值
擷取當前串連數:

17、  
indco=`echo $a | awk '{printf("%d\n",match($0,"conn"))}'` 
擷取字串變數a中的子字串“conn”的下標,並賦值給indco
18、
indco1=$(($indco+6)) 
給變數indco加6,把結果賦值給indco1
19、  
indco0=`echo $a | awk '{printf("%d\n",match($0,"delete"))}'` 
 擷取字串變數a中的子字串“delete”的下標,並賦值給indco0
20、
indco2=$(($indco0-4)) 
給變數indco0減4,把結果賦值給indco2
21、
costr=`echo ${a:$indco1:$(($indco2-$indco1))}` 
擷取字串a中下標indco1到indco2之間的子字串並賦值給costr,即conn的值
最大串連數819,空閑串連數可以根據最大串連數和當前串連數算出來。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.