python-檢測cpu負載
- 2020 年 1 月 9 日
- 筆記
近期研究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種方法效果一樣,腳本很簡單,有好方法的大神,開源出來,互相學習!