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

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

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

磁盘空间使用
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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值