İşlemlerin ayrı ayrı toplam i/o durumlarını gösteren programın, derli
toplu gösterim yapan son hali.
Basitçe toplam i/o çok olandan az olana doğru çıktıyı ekrana basar.
İhtiyacınıza göre düzenleyiniz.
Girintilerin korunmuşu için aşağıdaki bağlantıdan kaynak dosyayı
indirebilirsiniz.
Bağlantı: https://ubuntuone.com/6cWiLacaiT5lqHVAyQUC0x
--------------------------
"""
Author: Baris CUHADAR
Email : [email protected]
License: GPL-v2.
"""
import os
import re
def getio(s):
patterns=["syscr:\ [0-9]+","syscw:\ [0-9]+","[0-9]+"]
tmp=list()
rt=str()
for i in range(2):
m=re.search(patterns[i],s)
rt=m.group()
m=re.search(patterns[2],rt)
tmp.append(int(m.group()))
return tmp
def getprocessname(pid):
f=open("/proc/"+pid+"/status","r")
tmp=f.read()
f.close()
patterns=["Name:\t+[a-zA-Z0-9\-]+","\t+[a-zA-Z0-9\-]+"]
tlist=str()
rt=str()
m=re.search(patterns[0],tmp)
rt=m.group()
m=re.search(patterns[1],rt)
tlist=m.group()
return tlist.strip()
if "__main__" in __name__:
f=os.popen("ps -eo pid | grep -Eo '[0-9]+'","r")
pids=f.read()
f.close()
pids=pids.split("\n")[:-1]
genlist=list()
for i in pids:
try:
f=open("/proc/"+str(i)+"/io","r")
tmp=getio(f.read())
f.close()
genlist.append([(tmp[0]+tmp[1]),i,getprocessname(i)])
except:
pass
genlist.sort(reverse=True)
for i in genlist:
print("IO:"+str(i[0])+" "+" Pid: "+str(i[1])+" Pname: "+i[2])
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu