Python之运维

这几日一直研究运维监控的事情,有次看见有一个脚本写的还不错,如今已经找不到地址了 就只能用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命令

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。