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

2013-12-01 09:40 242人阅读 评论(0) 收藏 举报
pythoncpu硬盘网络网卡

转载:http://blog.csdn.net/chenyulancn/article/details/7995471

内存信息 / meminfo

 返回dict

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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

 
[python] view plaincopy在CODE上查看代码片派生到我的代码片

    #!/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  

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS