Python查看Linux服务器的cpu、内存、硬盘使用情况
2014-11-11 16:10
Python
Linux
CPU
内存
监控
摘要:写了一个用 Python 读取 /proc 文件系统来监控服务器 CPU、内存和硬盘使用情况的脚本,不需要登录服务器就能在 Web 页面查看。
有些时候,我们想对我们的服务器进行简单的监控,不需要登录服务器就可以查看到服务器的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