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

111 篇文章 0 订阅

前两天接到了一个新的需求,需要在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,空闲连接数可以根据最大连接数和当前连接数算出来。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值