python收集linux进程信息,用Python收集Linux系统信息

本文最后更新于2014年6月22日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

通过读取Linux系统中的一些关键性文件以及调用相关命令来查看系统信息:

#!/usr/bin/env python

#coding=utf-8

import os

mem=[]

net=[]

def dump(content):

for id, item in enumerate(content, 1):

print("%d:" % id)

for k in item:

print(" %s: %s" % (k, item[k]))

print("\n")

def parse(content):

info = {}

for line in content:

t = line.split(": ")

if len(t) < 2:

continue

name = t[0].strip()

value = t[1].strip()

info[name] = value

return info

data = os.popen("/usr/sbin/dmidecode").read()

sectors = data.split("\n\n")

for sector in sectors:

lines = sector.split("\n")

if len(lines) < 3:

continue

title = lines[1]

info = parse(lines)

if title == 'Memory Device':

if not info['Size'].startswith('No'):

mem.append({'size':info['Size']})

data = os.popen("/sbin/ip -o -f inet addr").read()

lines = data.split("\n")

for line in lines:

items = line.split()

if len(items) < 4:

continue

net.append({'name':items[1],'addr':items[3]})

print("[OS]")

os.system('/bin/uname -nsr')

print(open('/etc/issue.net').readline())

print("[CPU]")

lines=open('/proc/cpuinfo').readlines()

info=parse(lines)

print("Model Name: %s\nAddress sizes: %s\n" % (info['model name'], info['address sizes']))

os.system('/usr/bin/lscpu')

print("\n")

print("[Memory]")

lines=open('/proc/meminfo').readlines()

info=parse(lines)

print("total: %s ; swap: %s" % (info['MemTotal'], info['SwapTotal']))

dump(mem)

print("[FS]")

os.system('/bin/lsblk')

print("")

os.system('/bin/df -h')

print("\n")

print("[Net]")

dump(net)

=EOF=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值