天天看点

linux shell中获取mongodb最大连接数、内存使用情况等

前两天接到了一个新的需求,需要在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,空闲连接数可以根据最大连接数和当前连接数算出来。

继续阅读