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

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

时间: 2024-08-30 22:24:26

linux shell中获取mongodb最大连接数、内存使用情况等的相关文章

linux在shell中获取时间 date巧用

  linux在shell中获取时间 date巧用 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28   date1=$(date --date='1 days ago +%Y%m%d')    #前一天的日期 date1=$(date --date='2 days ago +%Y%m%d')    #前l两天的日期   将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数 获

Linux系统中获取路径的文件名的方法

  这篇文章主要介绍了Linux系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下 代码如下: [root@dabu.info ]#basename /root/aaa/bbb/dabu.txt 显示: 代码如下: dabu.txt #获取路径的文件名 shell脚本中如何获得脚本文件所在路径? 方法一: 代码如下: [root@dabu.info ]#DIR=$(cd "$(dirname "$0")"; pwd) [root@dabu.info

一些Linux Shell中的权限相关知识总结

  这篇文章主要介绍了一些Linux Shell中的权限相关知识总结,使Linux入门学习中的基础知识,需要的朋友可以参考下 一个文件一经创建,就具有三种访问方式: 1) 读,可以显示该文件的内容. 2) 写,可以编辑或删除它. 3) 执行,如果该文件是一个s h e l l脚本或程序. 按照所针对的用户,文件的权限可分为三类: 1) 文件属主,创建该文件的用户. 2) 同组用户,拥有该文件的用户组中的任何用户. 3) 其他用户,即不属于拥有该文件的用户组的某一用户 文件的全部信息包括以下: 文

Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍

本文讲的是Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍, 前言 建议阅读本文之前,你对ARM组件的有个基本了解,本文会先为你介绍32位Linux环境中进程的内存布局,然后再介绍堆栈和堆相关内存损坏的基本原理以及调试方法. 本文中使用的示例是在ARMv6 32位处理器上编译的,如果你无法访问ARM设备,可以点击这里https://azeria-labs.com/emulate-raspberry-pi-with-qemu/创建自己的实验环境并在虚拟机中模拟Raspberry Pi发

linux shell 中 2>&1的含义_linux shell

linux shell 中"2>&1"的含义 脚本: nohup /mnt/Nand3/H2000G  >/dev/null  2>&1  & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出

Linux shell中的竖线(|)——…

原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,例如: $ls -s|sort -nr (请注意不要复制$符号进去哦) -s 是file size,-n是numeric-sort,-r是reverse,反转 该命令列出当前目录中的文档(含size),

[转载]Linux shell中的竖线(|)——管道符号

原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,例如: $ls -s|sort -nr (请注意不要复制$符号进去哦) -s 是file size,-n是numeric-sort,-r是reverse,反转 该命令列出当前目录中的文档(含size),

windows azure中在哪里能看到内存使用情况呢?

问题描述 windows azure中在哪里能看到内存使用情况呢? 如题.在windows azure中 在哪儿能看到内存的使用情况呢? 解决方案 您好, 无论是虚拟机,网站服务还是云服务,您都可以在监视(minitor)的面板中查看这些信息. 对于虚拟机和云服务的项目,正如caozhy的第二种方式,您可以远程到虚拟机,在任务管理器中查看计算机的performance.Regards,Will如果您想进一步了解Windows Azure Windows Azure 官网欢迎您的访问 解决方案二:

一些Linux Shell中的权限相关知识总结_linux shell

一个文件一经创建,就具有三种访问方式: 1) 读,可以显示该文件的内容. 2) 写,可以编辑或删除它. 3) 执行,如果该文件是一个s h e l l脚本或程序. 按照所针对的用户,文件的权限可分为三类: 1) 文件属主,创建该文件的用户. 2) 同组用户,拥有该文件的用户组中的任何用户. 3) 其他用户,即不属于拥有该文件的用户组的某一用户 文件的全部信息包括以下: 文件的位置. 文件类型. 文件长度. 哪位用户拥有该文件,哪些用户可以访问该文件. 节点. 文件的修改时间. 文件的权限位. 可