这几日一直研究运维监控的事情,有次看见有一个脚本写的还不错,如今已经找不到地址了 就只能用Python代替shell了

其中原理是 监控 /proc/下的各种文件,/proc/ 顾名思义其为进程的文件,可以看到很多进程信息。具体的请百度吧!

1,cpu负载信息

 1 def cpu_stat(): 
 2         cpuloadStat = {} 
 3         fileopen = open("/proc/loadavg")
 4         fileread = fileopen.read().split()
 5         cpuloadStat['lavg_1']=fileread[0] 
 6         cpuloadStat['lavg_5']=fileread[1] 
 7         cpuloadStat['lavg_15']=fileread[2] 
 8         cpuloadStat['nr']=fileread[3] 
 9         cpuloadStat['last_pid']=fileread[4]
10         fileopen.close() 
11         return cpuStat


2、cpu信息

 1 def cpu_stat(): 
 2         cpu = [] 
 3         cpuinfo = {} 
 4         f = open("/proc/cpuinfo") 
 5         lines = f.readlines() 
 6         f.close() 
 7         for line in lines: 
 8             if line == 'n': 
 9                 cpu.append(cpuinfo) 
10                 cpuinfo = {} 
11             if len(line) < 2: continue 
12             name = line.split(':')[0].rstrip() 
13             var = line.split(':')[1] 
14             cpuinfo[name] = var 
15         return  

注:如果cpu多的话自行添加

3、内存信息

 1 def memory_stat(): 
 2         mem = {} 
 3         f = open("/proc/meminfo") 
 4         lines = f.readlines() 
 5         f.close() 
 6         for line in lines: 
 7             if len(line) < 2: continue 
 8             name = line.split(':')[0] 
 9             var = line.split(':')[1].split()[0] 
10             mem[name] = long(var) * 1024.0 
11         mem['MemUsed'] = mem['MemTotal'] - mem['MemFree'] - mem['Buffers'] - mem['Cached'] 
12         return mem 

4、磁盘空间使用

1 def disk_stat(): 
2         import os 
3         hd={} 
4         disk = os.statvfs("/") 
5         hd['available'] = disk.f_bsize * disk.f_bavail 
6         hd['capacity'] = disk.f_bsize * disk.f_blocks 
7         hd['used'] = disk.f_bsize * disk.f_bfree 
8         return hd 

当然Linux运维还可以通过Linux常用的命令。

  如top ps,vmstat 等 给你们个连接上面讲的不一定清楚但是总结还是不错的http://bbs.51cto.com/thread-971896-1.html

总结:

  如果想监控更多的可以研究一下/proc/下面的文件,也可以研究一下Linux命令

  

posted on 2014-11-27 14:34  零尘一度  阅读(1315)  评论(0编辑  收藏  举报