统计tomcat的线程数

背景

应届生一枚,公司开发告知需求想要监控tomcat的线程数,思考一番决定采用zabbix定义KEY值得方式去检测,SO第一步要完成一个shell脚本

脚本思路

作为一个全新的运维背锅侠,觉得脚本应该这么写:
首先,我得先检测出tomcat的进程,对没错得用ps命令,加个日常参数套餐ef,然后用grep过滤一下;嗯,还得过滤掉grep这个进程,对再加一条过滤语句

ps -ef | grep "tomcat"| grep -v grep

其次,我得获取到tomcat的进程pid,这里当然用awk了,先看一下我们上一句语句运行的结果

image

我们要的是23548这个值,对没错,分隔是符空格,无需f指派分隔符,print取第二个值,gogogo

ps -ef | grep "tomcat"| grep -v grep| awk '{print $2}'
image

然后,我们要用取得的PID去查看tomcat的线程,对,还是用ps,这次换个套餐加Lf(L大写),然后啪啪啪啪一堆的进程出现了,哦no,这不是我想要的,我要的是数量,OK?对,没错,要加个管道符,然后用wc来统计一下我们的进程有多少

ps -Lf 23548 |wc -l

完美,我拿到了服务器tomcat的线程数了;等等,我要的是脚本运行,第二条命令要能拿到第一条命令给出的PID才可以

image

再然后,先创建一个tomcat.sh脚本文件,我得在脚本里定义一个变量——PID,第一条命令获得变量值后让第二条命令去读取这个变量,思路有了,思考一个问题:如何将一条命令定义为一个变量?对,没错,变量的=后面加$()

vi tomcat.sh
#!/bin/bash
#Tomcat线程检测
    PID=$(ps -ef | grep "tomcat" | grep -v grep | awk '{print $2}')
    ps -Lf $PID |wc -l

跑起来,最后就是那激动人心的授权执行了

#授予执行权限
chmod +x tomcat.sh
#跑起来
./tomcat
image

完美的拿到了tomcat线程数

脚本

勉励:哪怕简单代码也要写注释,也要好看点,方便他人看懂,方便自己欣赏

#!/bin/bash
#Tomcat线程检测器
    #定义变量PID为tomcat的PID进程号
    PID=$(ps -ef | grep "tomcat" | grep -v grep | awk '{print $2}')
    #查看并统计tomcat线程数
    ps -Lf $PID |wc -l

zabbix的监控因为懒,还没写,后续再说
有错请指出,不喜勿喷,不接受喷我小白,虽然这是事实,如果要喷请预约

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 8,096评论 0 37
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,176评论 0 23
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 我想要一间空的房间,白纱的窗口微微透着光,鹅黄色的地板纯白纯白的墙。我坐在地板最中间,好像灵感能从四面八方涌过来,...
    布桨阅读 216评论 0 0
  • 你噤声 我陪你沉默 你辩驳 我继续观摩 圆不全的谎 破碎着 剥落着 任何时刻 说谎的心 风将它吹响 被土地掩藏 逼...
    太平美满君阅读 183评论 3 4