linux top mem单位,通过py处理linux中top命令获取到的mem数据

一、top获取到的数据

保存在session.log中,主要字段如下

...

[root@*** ~]$ top

top - 10:16:21 up 1 day, 16:56, 1 user, load average: 0.32, 0.09, 0.07

...

KiB Mem : 1014904 total, 69072 free, 525736 used, 420096 buff/cache

...

top - 10:16:24 up 1 day, 16:56, 1 user, load average: 0.30, 0.09, 0.07

...

KiB Mem : 1014904 total, 70480 free, 524256 used, 420168 buff/cache

...

二、py程序

处理后保存在serverMem.csv中

数据行数大概有36100行,while循环暂时这样写,后续优化

#!/usr/bin/env python

import re

srcfile = "session.log"

descfile = "serverMem.csv"

def GetLine():

srcfd = open(srcfile, mode='r')

descfd = open(descfile, mode='w+')

i = 0

while (i < 36100):

line = srcfd.readline()

searchTime = re.search( r'(.*)top - (.*?) .*', line, re.M|re.I)

searchMem = re.search(r'(.*)KiB Mem :(.*?) .*', line, re.M|re.I)

if searchTime:

time = searchTime.group(2)

descfd.writelines(time + ',')

elif searchMem:

pattern = re.compile(r'\d+')

result1 = pattern.findall(line)

descfd.writelines(result1[0]+','+result1[1]+','+result1[2]+','+result1[3])

descfd.writelines("\n")

i += 1

descfd.close()

srcfd.close()

GetLine()

对正则表达式不熟,只能这样了,有谁比较熟悉的可以给出指导意见

三、输出结果

serverMem.csv部分结果如下

10:16:21,1014904,69072,525736,420096

10:16:24,1014904,70480,524256,420168

10:16:27,1014904,71476,523140,420288

10:16:30,1014904,66964,527408,420532

10:16:33,1014904,68308,526000,420596

10:16:36,1014904,66532,527832,420540

10:16:39,1014904,67636,526704,420564

...

需要加个头,代码不过关,写文件头没有成功,后续优化

server Mem (KiB): ,,,,

time, total, free, used, buff/cache

10:16:21,1014904,69072,525736,420096

10:16:24,1014904,70480,524256,420168

10:16:27,1014904,71476,523140,420288

10:16:30,1014904,66964,527408,420532

10:16:33,1014904,68308,526000,420596

10:16:36,1014904,66532,527832,420540

10:16:39,1014904,67636,526704,420564

...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值