代码之家  ›  专栏  ›  技术社区  ›  Jason Baker

有没有什么方法可以通过编程获得ps输出?

  •  4
  • Jason Baker  · 技术社区  · 14 年前

    我有一个web服务器,我目前正在测试它的CPU使用率。我所做的基本上是运行一个进程来向服务器发送请求,然后运行以下bash脚本来确定CPU使用情况:

    #! /bin/bash
    
    for (( ;; ))
    do
    
        echo "`python -c 'import time; print time.time()'`, `ps -p $1 -o '%cpu' | grep -vi '%CPU'`"
        sleep 5
    done
    

    真正地 如果有这样一个API就好了。

    有没有办法做到这一点,或者我必须启动外部脚本?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Community Dunja Lalic    7 年前

    你可以去看看 this

    其中一个答案建议使用 PSI python模块。不过,这是个扩展,所以我不知道这对你有多合适。

    它还演示了如何使用python调用ps子进程:)

        2
  •  3
  •   S.Lott    14 年前

    collection.sh

    for (( ;; ))
    do
        date; ps -p $1 -o '%cpu'
    done
    

    那就跑吧 collection.sh >someFile

    那就杀了这个 收藏.sh 服务器被猛击后的操作。

    analysis.py

    import datetime
    with( "someFile", "r" ) as source:
        for line in source:
            if line.strip() == "%CPU": continue
            try:
                date= datetime.datetime.strptime( line, "%a %b %d %H:%M:%S %Z %Y" )
            except ValueError:
                cpu= float(line)
                print date, cpu # or whatever else you want to do with this data.
    
        3
  •  1
  •   Seth    14 年前

    您可以使用 PySNMP . 这还有一个额外的好处,就是可以从远程计算机上进行测量。因此,您可以安装Zenoss或其同类的VM,并让它为您进行监视。

        4
  •  1
  •   Anil Vishnoi    14 年前

    http://www.faqs.org/docs/kernel/x716.html 上面的URL可能会提供一些初始推送。