2012. 10. 21. 23:33

pcmon 파이썬버젼

#!/usr/bin/python

# author wyseburn(at)gmail.com


from commands import getoutput

from urllib2 import urlopen


fp = open('/root/cron/pcmon.ini', 'r')

ip = fp.readline().strip()

target = fp.readline().strip()

proc = fp.readline().strip().split('|')

fp.close()


cpu_idle = getoutput("mpstat 1 1 | awk '/Average:/ {print $10}'")

cpu = 100.0 - float(cpu_idle)


load_avg = getoutput("cat /proc/loadavg | awk '{print $1}'")


mem = '|'.join(getoutput("free -m | awk '/Mem:/ {print $4} /cache:/ {print $4} /Swap:/ {print $3; print $4;}'").split('\n'))


disk = '|'.join(getoutput("df --block-size=1M -t ext3 | awk '/\// {print $6; print $4; print $5;}'").split('\n'))


ps_succ = []

ps_fail = []

for i in proc:

        if getoutput("pgrep "+i+" | wc -l") != '0':

                ps_succ.append(i)

        else:

                ps_fail.append(i)


con = urlopen(target + '&ip=' + ip + '&cpu='+ str(cpu) + '&load=' + load_avg + '&mem=' + mem + '&disk=' + disk + '&succ=' + ('|'.join(ps_succ)) + '&fail=' + ('|'.join(ps_fail)))

con.close()