İş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

Cevap