转载:linux系统下 python获取 内存、cpu、负载、网络流量、硬盘等信息
转载:http://blog.csdn.net/chenyulancn/article/details/7995471
内存信息 / 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(":")[0] var = line.split(":")[1].split()[0] mem[name] = 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 == " ": cpu.append(cpuinfo) cpuinfo = {} if len(line) < 2: continue name = line.split(":")[0].rstrip() var = line.split(":")[1] cpuinfo[name] = 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[0] loadavg["lavg_5"]=con[1] loadavg["lavg_15"]=con[2] loadavg["nr"]=con[3] loadavg["last_pid"]=con[4] 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[0]) 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[1]) / float(con[0]) 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[2:]: con = line.split() """ intf = {} intf["interface"] = con[0].lstrip(":") intf["ReceiveBytes"] = int(con[1]) intf["ReceivePackets"] = int(con[2]) intf["ReceiveErrs"] = int(con[3]) intf["ReceiveDrop"] = int(con[4]) intf["ReceiveFifo"] = int(con[5]) intf["ReceiveFrames"] = int(con[6]) intf["ReceiveCompressed"] = int(con[7]) intf["ReceiveMulticast"] = int(con[8]) intf["TransmitBytes"] = int(con[9]) intf["TransmitPackets"] = int(con[10]) intf["TransmitErrs"] = int(con[11]) intf["TransmitDrop"] = int(con[12]) intf["TransmitFifo"] = int(con[13]) intf["TransmitFrames"] = int(con[14]) intf["TransmitCompressed"] = int(con[15]) intf["TransmitMulticast"] = int(con[16]) """ intf = dict( zip( ( "interface","ReceiveBytes","ReceivePackets", "ReceiveErrs","ReceiveDrop","ReceiveFifo", "ReceiveFrames","ReceiveCompressed","ReceiveMulticast", "TransmitBytes","TransmitPackets","TransmitErrs", "TransmitDrop", "TransmitFifo","TransmitFrames", "TransmitCompressed","TransmitMulticast" ), ( con[0].rstrip(":"),int(con[1]),int(con[2]), int(con[3]),int(con[4]),int(con[5]), int(con[6]),int(con[7]),int(con[8]), int(con[9]),int(con[10]),int(con[11]), int(con[12]),int(con[13]),int(con[14]), int(con[15]),int(con[16]), ) ) ) 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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。