Python查看Linux服务器的cpu、内存、硬盘使用情况

有些时候,我们想对我们的服务器进行简单的监控,不需要登录服务器就可以查看到服务器的cpu、内存、硬盘的使用情况,在Web页面就能看到,以下是Python的实现方法。

cpu信息

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

cpu负载信息

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

内存使用情况

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

硬盘使用情况

def disk_stat():
    import os
    hd={}
    disk = os.statvfs('/')
    hd['available'] = float(disk.f_bsize * disk.f_bavail)
    hd['capacity'] = float(disk.f_bsize * disk.f_blocks)
    hd['used'] = float((disk.f_blocks - disk.f_bfree) * disk.f_frsize)
    return hd

发表评论

电子邮件地址不会被公开。 必填项已用*标注