python--过滤top命令--之--时间_系统CPU_进程CPU_内存
2012-11-21 23:00
567 查看
#!/usr/bin/env python # -*- coding: cp936 -*- """ top -b -n 2 -d 3 > ***.log -b:bash模式,可以重定向到文件 -n:一共取2次数据 -d:每次top数据间隔为3秒
"""
import os import re import string import argparse #D:/createuser.txt #D:/resultfobj.txt'''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 sysCPU P_ID processCPU processMEMORY'+'\n') #ID_TOM = '29128' ID_TOM = args.p TIME = '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:',MESSAGE if msysCPU is not None: list00 = re.split(':', eachline) #print list00 list01 = re.split(',', list00[1]) #print 'list01:\n',list01 for each in range(0, 6): list0101 = str.strip(list01[each]) #print 'list0101',list0101 us = re.search('us$', list0101) #print us if 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:', MESSAGE if mPID is not None: listPID = re.split('\s+', eachline) #print eachline MESSAGE.append(listPID[8] + ' ') MESSAGE.append(listPID[9]) #print 'MESSAGE process:',MESSAGE if len(MESSAGE)== 5: message = ''.join(MESSAGE) resultfobj.writelines(message + '\n') MESSAGE = [] logfobj.close() resultfobj.close() print 'end filter
相关文章推荐
- 用python计算top命令中某个进程的CPU,Memory使用情况
- Linux资源监控查看命令top—实时查看cpu、内存、进程情况
- TOP命令查看Linux系统CPU和内存使用情况
- Linux 查看系统信息命令 cpu、内存、进程、硬盘、网卡
- linux使用top命令跟踪进程的CPU占用率、内存使用率
- python输出一些系统信息 进程内存前10名,CPU前10名信息等
- psacct监视用户执行的命令,如cpu时间和内存战胜,实时进程记账
- psacct监视用户执行的命令,如cpu时间和内存战胜,实时进程记账
- linux系统top命令分析CPU和内存详解
- python 在linux下通过top,和dh命令获得cpu,内存,以及硬盘信息
- python自动化运维学习------使用模块psutil获取系统cpu、内存、磁盘、网络、进程等信息
- Linux 查看系统信息命令 cpu、内存、进程、硬盘、网卡
- 查看进程占用内存cpu信息,Linux命令—TOP
- solaris系统用ps命令查看进程占用的CPU、内存等情况
- 用python计算top命令中某个进程的CPU,Memory使用情况
- 查看进程占用内存cpu信息,Linux命令—TOP
- Linux下使用python调用top命令获得CPU利用率
- Java获取系统信息(cpu,内存,硬盘,进程等)的相关方法
- Linux中的top命令查看内存和cpu信息
- linux使用top命令察看系统进程信息