Shell脚本查看Nginx并发连接数、进程数和常驻内存占用情况

http://xiaoyongxing1.blog.163.com/blog/static/642807522015144302240/
该脚本针对网上已有解决方案(google一下nginx状态监控shell脚本),修改内存总数计算bug,修改字符错误。在CentOs5.7系统环境下测试可用。

#/bin/bash
host=`hostname`
ip=`ifconfig eth0 | grep 'inet addr'|sed 's/.*addr://g'|sed 's/B.*//g'`
#监控nginx的连接数
http_req=`netstat -nat|grep -i "80"|wc -l `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${http_req} -ge 300 ];
then
echo "alert ==> ${host}@${ip}: http connection ${http_req} >= 300 @${time_stamp} "
else
echo "${host}@${ip}: http connection ${http_req} @ ${time_stamp}"
fi
##监控nginx的进程
nginx_proc=`ps -C nginx -no-header | wc -l `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${nginx_proc} -ge 100 ]
then
echo "alert ==> ${host}@${ip}: nginx process ${nginx_proc} >= 100 @${time_stamp} "
else
echo "${host}@${ip}: nginx process ${nginx_proc} @ ${time_stamp}"
fi
#监控nginx所占用的内存总数
nginx_mem=`top -b -n1 | grep nginx |gawk '{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}' `
time_stamp=`date "+%Y/%m/%d %T"`
if [ ${nginx_mem} -ge 500 ]
then
echo "alert ==> ${host}@${ip}: nginx memory usage ${nginx_mem} MB >= 500 @${time_stamp} "
else
echo "${host}@${ip}: nginx memory ${nginx_mem}MB @ ${time_stamp}"
fi

由此可推导出相应的python版:

#coding=utf-8
__author__ = 'kenkao'import osdef getNginxProcess():p = os.popen('ps -C nginx -no-header | wc -l')return p.read()def getNginxMemory():p = os.popen('top -b -n1 | grep nginx |gawk \'{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}\'')return p.read()def getNginxConnect():p = os.popen('netstat -nat|grep -i "80"|wc -l')return p.read()def getPhpfpmProcess():p = os.popen('ps -C php-fpm -no-header | wc -l')return p.read()def getPhpfpmMemory():p = os.popen('top -b -n1 | grep php-fpm |gawk \'{if($6~/m$/) {sum+=$6*1024} else {sum+=$6} }; END {print int(sum/1024)}\'')return p.read()if __name__ == '__main__':print "NginxProcess:" + getNginxProcess()print "NginxMemory:" + getNginxMemory()print "NginxConnect:" + getNginxConnect()print "PhpfpmProcess:" + getPhpfpmProcess()print "PhpfpmMemory:" + getPhpfpmMemory()

Shell脚本和Python查看Nginx并发连接数、进程数和常驻内存占用情况相关推荐

  1. 检测指定进程的CPU和内存占用情况

    '检测指定进程的CPU和内存占用情况'vs2019 vb.net Dim Name = Process.GetCurrentProcess().ProcessNameDim cpuCounter = ...

  2. linux c 获取进程 cpu占用率 内存占用情况

    实例如下: #include <stdio.h> #include <unistd.h> #include <sys/time.h> #include <st ...

  3. 使用shell脚本 控制 python挂掉后自动重启

    我们经常需要在后台运行一些python脚本,来监控系统或者做一些其他事情:但是 由于各种各样的问题,不是python脚本代码的问题:脚本运行过程中会挂掉.手动重启 不现实,天天耗在上面等重启... 所 ...

  4. linux中用shell脚本对tomcat和nginx做日志切割

    Tomcat日志catalina.out切割小脚本 #!/bin/bash #cut tomcat catalina.out yesterday=`date +"%F" -d &q ...

  5. 怎样打开mysql进程数_mysql查看最大打开进程数

    今天在群里刚刚知道这个查看打开最大进程数的命令,下面来看一下吧~ cat /proc/27095/limits | grep Max open files 查看mysql最大打开进程数的命令 我们应该 ...

  6. 查看Linux磁盘及内存占用情况

    查看磁盘使用情况: df -k:以KB为单位显示磁盘使用量和占用率 df -m:以Mb为单位显示磁盘使用量和占用率 df –help:查看更多df命令及使用方法 查看内存占用情况: 1.top PID ...

  7. linux 内存占满 top找不到进程_检查Linux内存占用的 5 大命令,你知道几个?

    引言: 系统内存是硬件系统中必不可少的部分,定时查看系统内存资源运行情况,可以帮助我们及时发现内存资源是否存在异常占用,确保业务的稳定运行.例如:定期查看公司的网站服务器内存使用情况,可以确保服务器的 ...

  8. 如何查看服务器资源占用情况,云服务器如何查看内存占用情况

    云服务器如何查看内存占用情况 发布时间:2020-05-26 15:28:18 来源:亿速云 阅读:508 作者:栢白 云服务器如何查看内存占用情况?云 我们以 Linux 云服务器为例,介绍几个常用 ...

  9. linux查看服务器内存占用情况

    查看某个进程的占用内存情况(以'device_maintenance'为例) 1.查找进程号 ps -ef | grep 'device_maintenance' 或 ps -aux | grep ' ...

最新文章

  1. shell学习之shell基础知识了解
  2. 关于.NET前后台提示框的那点事
  3. 闭环思维之follow through和及时反馈
  4. Windows栈溢出原理
  5. android opencv hu moment,学习OpenCV:hu矩
  6. aqs java 简书,Java AQS源码解读
  7. (135)FPGA面试题-介绍FPGA的速度等级与温度等级
  8. 爱了!华为nova 5细节曝光:外观配置堪比Mate 20 Pro
  9. word页面顺序倒过来_Word里的表格,行之间的顺序如何颠倒过来?
  10. K8S 的报错问题解决
  11. 20套高品质的 Mobile Web 界面 PSD 素材免费下载
  12. IAR软件生成库文件.a的license限制
  13. LG手机无法连接adb
  14. 没有找到MSVCR100.dll解决方法
  15. 子网地址和广播地址的计算
  16. 国潮风格设计,具象化插画作品|打开你的头脑风暴
  17. 小米HTML查看器记住密码,小米路由器 SSH 密码计算工具,开启小米SSH访问
  18. 数值分析正割法python3实现并绘图
  19. 微信聊天记录删了如何找回
  20. tecplot常用笔记

热门文章

  1. java中有哪几种访问修饰符_Java语言中有4种访问修饰符
  2. mysql错误代码1怎样解决_打开网页提示mysql发生错误,错误号1194,请问下该怎么解决? 爱问知识人...
  3. 复合选择器-链接伪类选择器(HTML、CSS)
  4. 实验2-2-2 计算摄氏温度 (10 分)
  5. Vue使用wangEditor 封装成独立组件实现富文本编辑器
  6. C语言程序打印命令,跪求C语言程序读ID3v1信息从mp3文件并打印出来。 1)使用命令行输入一个MP3档案名称。 2)判断档案名称的分...
  7. 上传图片到服务器不能马上响应,用post方式上传图片到服务器
  8. python语言与c语言相比在分支结构上有什么不同_C语言顺序结构和分支结构总结...
  9. ltrim函数_数据分析常用Excel函数
  10. Pycharm 2018 1.2版本 Mac注册码激活码