使用python自动监控程序运行过程数据
操作系统 :CentOS 7.6.1810_x64
Python 版本 : 2.7.5
一、背景描述
工作中会遇到需要监控程序运行过程数据的情况,比如定时执行监控的cmd并记录执行结果,本文提供一种实现方式,便于后续排查问题。
二、具体实现
使用python实现该功能很简单,大致分为以下几个步骤:
1、编写cmd命令,确保执行后有控制台输出且退出命令;
2、使用 popen 执行cmd命令,并获取cmd的执行结果;
3、将执行结果以日志形式写入文件,并设置日志文件总大小,避免占用过多磁盘;
自动监控脚本示例代码如下:

完整代码可从该地址获取:聊聊博文-使用python自动监控程序运行过程数据
或关注微信公众号(聊聊博文,文末可扫码)后回复 2023031801 获取。
其中,cmd 可以根据实际情况进行调整,这里列举下我常用的几个场景。
监控某进程cpu、内存使用情况
先使用ps获取程序pid,再使用top命令监控进行运行数据:
top -b -n 1 -p 15653

- 监控磁盘使用情况
可使用iostat命令获取指定设备的使用数据:
iostat -d sda

监控某应用程序运行数据
比如监控freeswitch的呼叫数据,可以使用如下命令:
/usr/local/freeswitch/bin/fs_cli -x "show calls count"
如果是在docker容器中,可使用如下命令:
docker exec -t fs /usr/local/freeswitch/bin/fs_cli -x "show calls count"

三、运行效果
这里以监控进程为例演示下使用效果,命令如下:
top -b -n 1 -p 15653
效果如下:

本文涉示例代码,可从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023031801 获取。
使用python自动监控程序运行过程数据的更多相关文章
- Python自动单元测试框架
原文链接:http://www.ibm.com/developerworks/cn/linux/l-pyunit/ 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写 ...
- [转] Python自动单元测试框架
一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software ...
- 谈谈 Python 程序的运行原理
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...
- Python基础——安装运行
Python是如何运行的? 像绝大多数编程语言一样,要在计算机上能够运行python程序,至少需要安装一个最小的Python包:一个Python解释器和支持的库. 安装Python 安装包下载:htt ...
- 利用python自动生成verilog模块例化模板
一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...
- sublime_text运行python ctrl+b运行的界面隐藏了怎么重新调出来恢复显示?
sublime_text运行python ctrl+b运行的界面隐藏了怎么重新调出来恢复显示?搜索了下都是说怎么隐藏的,隐藏后怎么恢复显示的没找到看进程还在运行,但调不出来看运行结果了,console ...
- python自动华 (二)
Python自动化 [第二篇]:Python基础-列表.元组.字典 本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初 ...
- Python自动玩"别再踩白块了"小游戏
开发工具 Python版本:3.6.4 相关模块: numpy模块: CV2模块: pyautogui模块: pyscreenshot模块: 以及一些Python自带的模块. 环境搭建 安装Pytho ...
- Python自动补全
转自:http://blog.linuxeye.com/324.html Python自动补全有vim编辑下和python交互模式下,下面分别介绍如何在这2种情况下实现Tab键自动补全. 一.vim ...
- python virtualenv环境运行django
python virtualenv环境运行django 安装前准备 检查pip版本与python版本是否一致 [root@localhost bin]# whereis pip pip: /usr/b ...
随机推荐
- Coursera Programming Languages, Part B 华盛顿大学 Week 3
ML Versus Racket 同 函数编程模式 (with constructs that encourage a functional style) 不鼓励 mutation (但提供了支持 m ...
- 专业家庭影音服务器-硬件平台x86+固态盘+sata机械盘
提到影音绕不开的就是大容量存储,就目前情况机械硬盘的海量存储还是唯一选择,所以实现起来总是绕不开NAS这个思路,比较起来,常规PC系统,固态和机械相结合,或许才是终极解决方案. 老式硬件 过失的产品在 ...
- [Unity3D 小Tricks] 如何修改Unity3d脚本默认模板?
众所周知,unity默认的模板总是Update()和Start(),但往往我们并不需要,每次都要手动删除非常麻烦. 但可以更改如下模板文件 C:\Program Files\Unity 2020.3. ...
- server2008R2 安装.net framework 4.7 4.8 时间戳签名和/或证书无法验证或格式错误
安装补丁 KB4474419 和KB4490628 实测有效 补丁下载: https://www.catalog.update.microsoft.com/Search.aspx?q=4474419 ...
- CMD输出文本文件内容的type指令(替代Linux的cat指令)
:: 本脚本的所有指令本身不输出到屏幕 @echo off :: 打印文本文件内容并匹配关键字,结果不输出到屏幕 type result.txt | find "error" &g ...
- Python模块——os模块详解
- P1138 第 k 小整数
P1138 第 k 小整数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) dalao 勿喷,适合新手 思路就是排序加查重,最后判断第k小数.思路十分简单. 刚开始我一直想二维循环查 ...
- pycharm debug 等实用功能
1.debug方法方法一: 1.打断点,代码会运行到断点前一行 2.step over 逐行运行代码 3.鼠标选中带有函数语句的当前行,点击 step into 再点击step over代码会跳转到函 ...
- [CQOI2014]通配符匹配 题解
第一眼:什么鬼东西ヾ(。`Д´。) 第二眼:显然,这道题要分段处理 类似[TJOI2018]碱基序列\ (建议做一做也是Hash+DP)\ 那你怎么第一眼没看出来 Hash处理+DP==AC 直接上代 ...
- String 练习题
题目一:获取指定字符串中,大写字母.小写字母.数字的个数. 题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串. 题目三:查询大字符串中,出现指定小字符串的次数.如&q ...