python Linux系统信息
内存信息 / meminfo返回dict
#!/usr/bin/env python
def memory_stat():
mem = {}
f = open("/proc/meminfo")
lines = f.readlines()
f.close()
for line in lines:
if len(line) < 2: continue
name = line.split(':')
var = line.split(':').split()
mem = long(var) * 1024.0
mem['MemUsed'] = mem['MemTotal'] - mem['MemFree'] - mem['Buffers'] - mem['Cached']
return mem
CPU信息 / cpuinfo
返回list,
每核心一dict
#!/usr/bin/env python
def cpu_stat():
cpu = []
cpuinfo = {}
f = open("/proc/cpuinfo")
lines = f.readlines()
f.close()
for line in lines:
if line == '\n':
cpu.append(cpuinfo)
cpuinfo = {}
if len(line) < 2: continue
name = line.split(':').rstrip()
var = line.split(':')
cpuinfo = var
return cpu
负载信息 / loadavg
返回dict
#!/usr/bin/env python
def load_stat():
loadavg = {}
f = open("/proc/loadavg")
con = f.read().split()
f.close()
loadavg['lavg_1']=con
loadavg['lavg_5']=con
loadavg['lavg_15']=con
loadavg['nr']=con
loadavg['last_pid']=con
return loadavg
运转时间 / Uptime
返回dict
#!/usr/bin/env python
def uptime_stat():
uptime = {}
f = open("/proc/uptime")
con = f.read().split()
f.close()
all_sec = float(con)
MINUTE,HOUR,DAY = 60,3600,86400
uptime['day'] = int(all_sec / DAY )
uptime['hour'] = int((all_sec % DAY) / HOUR)
uptime['minute'] = int((all_sec % HOUR) / MINUTE)
uptime['second'] = int(all_sec % MINUTE)
uptime['Free rate'] = float(con) / float(con)
return uptime
获取网卡流量信息 /proc/net/dev
返回dict,单位byte
#!/usr/bin/env python
def net_stat():
net = []
f = open("/proc/net/dev")
lines = f.readlines()
f.close()
for line in lines:
con = line.split()
"""
intf = {}
intf['interface'] = con.lstrip(":")
intf['ReceiveBytes'] = int(con)
intf['ReceivePackets'] = int(con)
intf['ReceiveErrs'] = int(con)
intf['ReceiveDrop'] = int(con)
intf['ReceiveFifo'] = int(con)
intf['ReceiveFrames'] = int(con)
intf['ReceiveCompressed'] = int(con)
intf['ReceiveMulticast'] = int(con)
intf['TransmitBytes'] = int(con)
intf['TransmitPackets'] = int(con)
intf['TransmitErrs'] = int(con)
intf['TransmitDrop'] = int(con)
intf['TransmitFifo'] = int(con)
intf['TransmitFrames'] = int(con)
intf['TransmitCompressed'] = int(con)
intf['TransmitMulticast'] = int(con)
"""
intf = dict(
zip(
( 'interface','ReceiveBytes','ReceivePackets',
'ReceiveErrs','ReceiveDrop','ReceiveFifo',
'ReceiveFrames','ReceiveCompressed','ReceiveMulticast',
'TransmitBytes','TransmitPackets','TransmitErrs',
'TransmitDrop', 'TransmitFifo','TransmitFrames',
'TransmitCompressed','TransmitMulticast' ),
( con.rstrip(":"),int(con),int(con),
int(con),int(con),int(con),
int(con),int(con),int(con),
int(con),int(con),int(con),
int(con),int(con),int(con),
int(con),int(con), )
)
)
net.append(intf)
return net
磁盘空间使用
使用内置Python内置函数,返回dict,单位byte
#!/usr/bin/env python
def disk_stat():
import os
hd={}
disk = os.statvfs("/")
hd['available'] = disk.f_bsize * disk.f_bavail
hd['capacity'] = disk.f_bsize * disk.f_blocks
hd['used'] = disk.f_bsize * disk.f_bfree
return hd
页:
[1]