python-檢測cpu負載

      近期研究nagios,特意寫了檢測cpu負載的python腳本(有借鑒網上資料),順道練練python腳本,以下採用2種方法獲取cpu負載。

1、讀取cpu負載文件:

#!/usr/bin/env python #-*- coding:utf-8 -*- '''cpu負載檢測 for nagios''' import sys def check_load():     loadf=open('/proc/loadavg','r')     allavg=loadf.readline()     load5avg=float(allavg.split()[0])     load10avg=float(allavg.split()[1])     load15avg=float(allavg.split()[2])     loadf.close()     print load5avg     n=0     cpunf=open('/proc/cpuinfo','r')     for i in cpunf.readlines():         if i.split(':')[0].strip() == 'processor':             n+=1     cpunf.close()     if load5avg > n:         print "critical – load average:%.2f,%.2f,%.2f" %(load5avg,load10avg,load15avg)         sys.exit(2)     else:         print "OK – load average:%.2f,%.2f,%.2f" %(load5avg,load10avg,load15avg)         sys.exit(0) if __name__ == '__main__':     check_load()

2、調用python的os模組獲取cpu負載:

#!/usr/bin/env python #-*- coding:utf-8 -*- '''cpu負載檢測 for nagios''' import os,sys def check_load():     (d1,d2,d3)=os.getloadavg()     print d1     n=0     cpunf=open('/proc/cpuinfo','r')     for i in cpunf.readlines():         if i.split(':')[0].strip() == 'processor':             n+=1     cpunf.close()     if d1 > n:         print "critical – load average:%.2f,%.2f,%.2f" %(d1,d2,d3)         sys.exit(2)     else:         print "OK – load average:%.2f,%.2f,%.2f" %(d1,d2,d3)         sys.exit(0) if __name__ == '__main__':     check_load()

備註:2種方法效果一樣,腳本很簡單,有好方法的大神,開源出來,互相學習!