zoukankan      html  css  js  c++  java
  • 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命令

      

  • 相关阅读:
    On the fly test
    Spec Explorer 工具学习
    C# Static修饰符的作用
    [转]C#静态方法与非静态方法的比较
    如何获取网站服务器运行状态
    C#快速整理代码格式
    UI auto程序结构组织方式
    TestClass必须是public的
    VS2012如何显示行号
    Error: member names cannot be the same as their enclosing type
  • 原文地址:https://www.cnblogs.com/wipy/p/4126339.html
Copyright © 2011-2022 走看看