使用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 ...
随机推荐
- Lua监听事件观察者模式(多个监听者监听)
fireEvent 产生事件,创建协程分发(在registerEventListener注册过的事件中通过事件名字找到对应的信息,然后执行对应模块的OnEvent函数),多个地方都注册了同一个事件的话 ...
- ANSYS Electronics Suite 19.2下载地址及其安装教程
ANSYS Electronics Suite 19.2下载安装教程 1.下载地址https://getintopc.site/ansys-electronics-suite-19-2-free-do ...
- Git 提交(commit)没有自动生成Change-Id导致无法push
1). 检查仓储 .git/hook 下面是否有 commit-msg 文件,如果没有可以到下面的地址下载,或者把其他同事的commit-msg文件拷贝到你的.git/hook重新commit即可. ...
- java 对象比较 返回不相同的值
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler ...
- JAVA基础Day2-基本运算符/自增自减运算符/逻辑运算符、位运算符/包机制
一.基本运算符 算术运算符:+.-.*./.%.++.-- 赋值运算符:= 关系运算符:>.<.>=.<=.==.!= instanceof 逻辑运算符:&&. ...
- 个人PSP(四则运算)升级
源代码管理平台Gitbee地址:https://gitee.com/chen-haijin/ 1.题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负.除了支持整数运算外,还要支持真分 ...
- WebService基本功能接口实现
一.web服务的创建 1.新建一个web服务 创建一个空的模板可以为后面添加服务 2.创建一个服务 3.创建好服务后可以在websevice里面添加一个接口方法 4.我们运行下我们写的简单接口方法是否 ...
- Django 基础(二)
cookie和session from django.shortcuts import render from django.http import HttpResponse # Create you ...
- JS刷题自制参考知识
(建议复制到本地,需要看的时候打开Typora,大纲点击要查的内容即可,我一般记不清某个方法的时候就查一下.) 基础 Typescript TypeScript是一个开源的.渐进式包含类型的JavaS ...
- NodeJS - XSS-href
参考:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-href-xss-href/kbid-3-xss-url 输入h ...