内存信息 / 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 == ‘\n‘: 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
时间: 2024-11-12 04:48:40