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

发布时间:2020-07-20编辑:脚本学堂
本文介绍下,在linux系统中,用python获取内存、CPU、负载、网络流量、硬盘信息等的代码一例,有需要的朋友,参考下吧。

具体请参考如下的代码吧。

1、内存信息 / 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

 

2、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 

3、负载信息 / 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 

4、运转时间 / 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 

 

5、获取网卡流量信息 /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
 

6、磁盘空间使用
使用内置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 

您可能感兴趣的文章:
python检测服务器硬盘使用情况的代码
python获取linux系统信息(CPU、内存、硬盘等)的代码实例