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