#!/usr/bin/env python
# -*- coding: cp936 -*-
"""top -b -n 2 -d 3 > ***.log-b:bash模式,可以重定向到文件-n:一共取2次数据-d:每次top数据间隔为3秒

"""

 
#!/usr/bin/env python
# -*- coding: cp936 -*-import os
import re
import string
import argparse
#D:/createuser.txt
#D:/resultfobj.txt
# this is analysis createuser.log test
parser = argparse.ArgumentParser(description='过滤:时间,系统CPU,指定进程CPU,进程占用内存')
parser.add_argument('-l',metavar='LOG FILE',help='日志文件,绝对路径')
parser.add_argument('-r',metavar='RESULT FILE',help='保存分析结果,不指定报讯目录,则保存在当前目录下')
parser.add_argument('-p',metavar='PROCESS ID',help='过滤线程ID')
#parser.print_help()
args = parser.parse_args()try:#read the createuser.log file
    logfobj = open(args.l, 'r')resultfobj = open(args.r, 'w')resultfobj.writelines('TIME    sysCPUfobj    ID_TOM    processCPU    processMEMORY'+'\n')#ID_TOM = '29128'ID_TOM = args.pTIME = 'top'MESSAGE = []
except IOError, e:print 'open file error:\n',e
else:print 'start filter'for eachline in logfobj:msysCPU = re.search('^Cpu',eachline)mPID = re.search('^' + ID_TOM,eachline)mTIME = re.search('^' + TIME,eachline)if mTIME is not None:listTIME = re.split('\s+',eachline)#listTIME01 = re.split(':', listTIME[2])listTIME01 = ''.join(re.split(':', listTIME[2]))#获取时间戳MESSAGE.append(listTIME01 + '    ')#print 'messageTIME:',MESSAGEif msysCPU is not None:list00 = re.split(':', eachline)#print list00list01 = re.split(',', list00[1])#print 'list01:\n',list01for each in range(0, 6):list0101 = str.strip(list01[each])#print 'list0101',list0101us = re.search('us$', list0101)#print usif us is not None:#if each%2 ==0:list010101 = re.split('%',list0101)#获取系统CPU#print 'list010101[0]:',list010101[0]MESSAGE.append(list010101[0] + '    ')MESSAGE.append( ID_TOM+ '    ')#sysCPUfobj.writelines(list010101[0]+'\n')#print 'messagemsysCPU+pid:', MESSAGEif mPID is not None:listPID = re.split('\s+', eachline)#print eachlineMESSAGE.append(listPID[8] + '    ')MESSAGE.append(listPID[9]) #print 'MESSAGE process:',MESSAGEif len(MESSAGE)== 5:message = ''.join(MESSAGE)resultfobj.writelines(message + '\n')MESSAGE = []
logfobj.close()
resultfobj.close()
print 'end filter'

转载于:https://www.cnblogs.com/Pierre-de-Ronsard/archive/2012/11/21/2781694.html

python--过滤top命令--之--时间_系统CPU_进程CPU_内存相关推荐

  1. linux的top命令cpu,在Linux系统下使用top命令查看CPU使用情况

    在Linux系统下,使用top命令查看CPU使用情况. %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ...

  2. Top 命令 如何查看linux系统中空闲内存/物理内存使用/剩余内存

    1.top命令 top前5行统计信息 ** 第一行: top - 13:59:30 up 15 days, 4:53, 2 users, load average: 1.31, 1.62, 1.41 ...

  3. python unix时间戳转换成时间_关于python:将unix时间戳字符串转换为可读日期

    我有一个用python表示unix时间戳(即"1284101485")的字符串,我想把它转换成一个可读的日期.当我使用time.strftime时,我得到一个TypeError: ...

  4. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  5. python psutil 获取命令历史_Python使用psutil获取进程信息的例子

    psutil是什么 psutil是一个能够获取系统信息(包括进程.CPU.内存.磁盘.网络等)的Python模块.主要用来做系统监控,性能分析,进程管理,像glances也是基于psutil写成的. ...

  6. Linux书签(02)用linux top命令自行监测和分析服务器CPU、内存、进程等性能

    楔子: 学会灵活使用各种或工具或手段来监测自己的项目运行情况无疑是一种自我能力的提高.Linux top 命令也许会有所帮助. Linux top 命令 Linux top 命令是服务器工程师和运维最 ...

  7. python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间的方法

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊 ...

  8. python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做timeout,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊情况 ...

  9. python中访问命令行参数_如何在Python中访问命令行参数?

    我强烈建议argparsePython 2.7及更高版本随附. 该argparse模块减少了样板代码,并使您的代码更健壮,因为该模块可以处理所有标准用例(包括子命令),为您生成帮助和用法,检查和清理用 ...

  10. linux history命令显示时间_每天一条Linux命令(29) more (分页显示内容)

    在上一篇中我们学习了命令 less ,其作用是以分页的形式查看文件内容并可以对内容进行交互式操作.今天我们学习到的是命令 more,从字面意思乍一看命令less与命令more恰好为互反的两条命令,但其 ...

最新文章

  1. 在Sublime Text3中运行PHP代码
  2. EF Core Model更新迁移
  3. 配置 --- vscode自定义代码段Snippets
  4. java bitset_Java BitSet cardinality()方法与示例
  5. CortexM0开发 —— LPC11C14的UART使用方法
  6. 接口做的好怎么形容_淘宝直播预告怎么做才合格?如何做好?
  7. 语言栈十进制转十六进制_十进制数转二进制、八进制、十六进制等任意进制_C语言「抄作业」...
  8. HDU各种考试题题解
  9. Python中常用的一些库
  10. ApexPages.StandardSetController基本用处
  11. Maven 引入 ojdbc:ojdbc14-10.2.0.4.0.jar
  12. 华为悦盒EC6109u线刷救砖文件fastboot.bin bootargs.bin recovery
  13. 无理数究竟是什么?连续性公理的产物?——读戴德金之二
  14. 蓝桥杯之平面切分(几何问题)
  15. 我的日本友人(二):清野先生
  16. 4G 5G 频段介绍
  17. 日常学习之总结(1机器学习,2jupyter notebook,3语言类,4快捷键,5操作系统,6密码学,7Web安全,8Kali,9正则表达式,10计算机网络,11编程题目)
  18. Zookeeper Paxos算法 一致性协议
  19. 计算机专业必读的经典书籍
  20. fla转为html canvas,使用html2canvas将html转为图片

热门文章

  1. 微控制器MCU四大平台你了解多少?(二)
  2. 【渝粤教育】广东开放大学 生产与运作管理 形成性考核 (36)
  3. 目前选择四核处理器移动平台,是最佳时机吗?
  4. 谷歌大脑阿尔伯塔联合发表:离线强化学习的优化视角【附代码】
  5. 基于K2 BPM的大型连锁企业开关店选址管理解决方案
  6. [Android] Android 任务栈 【转载】
  7. C语言-第5课 - const和volatile分析
  8. FWT快速沃尔什变换
  9. 操作系统中涉及的各种调度算法
  10. 欧拉定理、费马小定理及其拓展应用