Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
USR имеет R права доступа
USR имеет W права доступа
USR не имеет X прав доступа
GRP имеет R права доступа
GRP не имеет W прав доступа
$ cat /usr/local/bin/djangostat.py
#!/usr/bin/env python
import os, commands
def ksort(x,y):
a, b = float(x['pmem']), float(y['pmem'])
if a>b:
return -1
elif a<b:
return 1
else:
return 0
def procs():
ll = commands.getoutput('ps aux|grep python').split('\n')
return [i.split() for i in ll]
def dstat(pp):
l = []
for p in pp:
if len(p)<13:
#print 'BA1', p
continue
if p[12] != 'runfcgi':
#print 'BA2', p
continue
s = p[11].split('/')
if len(s) < 3:
#print 'BA3', s
continue
m = {
'uid': p[0],
'pid': p[1],
'pcpu': p[2],
'pmem': p[3],
'vsz': p[4],
'rss': p[5],
'dom': s[3],
'app': s[5],
}
l.append(m)
return l
def pformat(v):
if len(v)>3:
return v[:-3]+'.'+v[-3:]
else:
return v
def printstat(s):
s.sort(ksort)
for i in s:
print "[%10s] {%5s} %20s %14s: CPU%%:%s MEM%%: %s VSZ/RSS: %s/%s Kb" % (
i['uid'], i['pid'], i['dom'], i['app'], i['pcpu'], i['pmem'], pformat(i['vsz']), pformat(i['rss']),
)
if __name__ == '__main__':
printstat(dstat(procs()))if len(password) < 8
Python для системных администраторов