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

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

  1. linux在shell中获取时间

    linux在shell中获取时间 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今 ...

  2. 【转】Linux内核中分配4M以上大内存的方法

    在Linux内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数,     "if (unlikely(order & ...

  3. linux shell 中的sleep命令

    开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...

  4. 理解 Linux shell 中的一个方言:2>&1

    理解 Linux shell 中的一个方言:2>&1  2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如 ...

  5. linux shell 中的位置变量

    对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过, ...

  6. linux内核中分配4M以上大内存的方法

    在内核中, kmalloc能够分配的最大连续内存为2的(MAX_ORDER-1)次方个page(参见alloc_pages函数,     "if (unlikely(order >= ...

  7. Linux shell中的一个问题 ${}带正则匹配的表达式

    目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...

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

    原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...

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

    原文地址:Linux shell中的竖线(|)--管道符号作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command ...

随机推荐

  1. px、pt、em、rem 的区别

    px(pixel) 像素,是屏幕上显示数据的最基本的点,表示相对大小(不同分辨率上px显示不同) pt(point) 印刷行业常用的单位(磅),等于1/72英寸,表示绝对长度 em em是相对长度单位 ...

  2. 基于Java的Arc Engine二次开发的环境的配置

    1.软件准备 ArcGIS for Desktop 10.2, Arc engine, jdk-7u60-windows-i586,Eclipse Mar2 2.软件的安装 2.1 ArcGIS fo ...

  3. JAVA设计模式---模板方法

    1.定义: 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. (为了防止子类改变模板方法中的算法,可以将模板方法声明为 ...

  4. Linux 下编译安装xDebug命令速记

    下载xdebug-2.2.4.tgz软件链接: http://pan.baidu.com/s/1jGHYRMA #解压 xdebugtar -zxvf xdebug-2.2.4.tgz #进入xdeb ...

  5. 【django之form表单】

    一.构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的模板: <form action="/your-name/" method=&qu ...

  6. (转)Elasticsearch 5 Ik+pinyin分词配置详解

    今天以这篇文章结束同城旅游网的面试,正好面试官也问到站内检索,可以尝试一下这篇文章介绍的方法.Elasticsearch 5 Ik+pinyin分词配置详解

  7. 洛谷 [P1119] 灾后重建

    我们发现每次询问都是对于任意两点的,所以这是一道多源最短路径的题,多源最短路径,我们首先想到floyd,因为询问的时间是不降的,所以对于每次询问,我们将还没有进行松弛操作的的点k操作. #includ ...

  8. BZOJ 3238: [Ahoi2013]差异 [后缀自动机]

    3238: [Ahoi2013]差异 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2512  Solved: 1140[Submit][Status ...

  9. Flask 开发| Flaskr 开发内容总结

    Flaskr 开发说明 官方文档 http://flask.pocoo.org/docs/0.12/tutorial/ 演示网站 http://flaskr.it592.com/ 涉及到的内容: 连接 ...

  10. 使用Spring Boot搭建应用开发框架(一) —— 基础架构

    Spring的简史 第一阶段:XML配置,在Spring1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件分放到不同的配置文件里,那时候需要频繁的在 ...