有些时候,我们想对我们的服务器进行简单的监控,不需要登录服务器就可以查看到服务器的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