牛骨文教育服务平台(让学习变的简单)
博文笔记

转载:linux系统下 python获取 内存、cpu、负载、网络流量、硬盘等信息

创建时间:2013-12-01 投稿人: 浏览次数:152

转载: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


 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。