zoukankan      html  css  js  c++  java
  • 监控脚本

    #!/usr/bin/env python

    import psutil, time

    from threading import Timer

    def getProcessInfo(p):

        global mem_percent,Path,Cmd

        try:

            cpu = int(p.cpu_percent(interval=0.1))

            mem_percent = int(p.memory_percent())

            # rss,vms,shared,text,lib,data,dirty = p.memory_info()

            name = p.name()

            pid = p.pid

            Path = p.cwd()

            Cmd = p.cmdline()

        except psutil.NoSuchProcess, e:

            name = "Closed_Process"

            pid = 0

            cpu = 0

        return [name, pid, cpu, mem_percent, Path, Cmd]

    def getAllProcessInfo():

        instances1 = []

        instances2 = []

        all_processes = list(psutil.process_iter())

        for proc in all_processes:

            info = getProcessInfo(proc)

            if info[3] > 40:

                instances1.append(getProcessInfo(proc))

            if info[2] > 70:

                instances2.append(getProcessInfo(proc))

        return instances1,instances2

    def main():

        obj1,obj2 = getAllProcessInfo()

        print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), obj1,obj2

        if obj1 != []:

            f1 = open('/tmp/memory_monitor.log', 'a')

            for data1 in obj1:

                f1.write(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + ' ')

                f1.write(str(data1) + ' ')

            f1.close()

        if obj2 != []:

            f2 = open('/tmp/cpu_monitor.log', 'a')

            for data2 in obj2:

                f2.write(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + ' ')

                f2.write(str(data2) + ' ')

            f2.close()

        

        t = Timer(14, main)

        t.start()

    if __name__ == '__main__':

        main()

  • 相关阅读:
    蛙蛙请教:问几个面向对象设计的问题
    推荐一些flash和asp.net结合开发的文章
    写一个跟踪的类库
    蛙蛙推荐:有关随机数的一些讨论
    蛙蛙推荐:用ASP.NET WEB Services和Flash MX 2004打造MP3播放器
    HiveQL学习
    Linux rpm 命令参数使用详解[介绍和应用]
    java.util.concurrent.locks.Condition 例子程序探讨
    [转]sudoers设置
    配置linux电脑
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/9115224.html
Copyright © 2011-2022 走看看