Видео смотреть бесплатно

Смотреть красавицы видео

Официальный сайт synclub 24/7/365

Смотреть видео бесплатно


Kane 20.10.09 13:38 # +0
Хех, год назад назад писал курсовик — диспетчер задач, данные шли из /proc естественно

28.09.09 14:05 evgenyl

PythonЧитаем /proc

Продолжаю серию статей о питоне, решил затронуть тему замечательной файловой системы /proc.
Я напишу несколько примеров для получения информации из proc, это можно реализовать на любом языке, тут в общем важен принцип.

1) Для начала получим загрузку процессора.
Немного теории, ЦП не заргужен как мы это представляем на 5% или 10%, он либо работает либо спит.
Загрузка считается за промежуток времени в виде разницы между отработынных тиков и тиков которые процессор бездействовал.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


import time

def cpu_get_state():

        state={}

        data=map( int, open('/proc/stat').readlines()[0].split()[1:5] )

        state['busy']=sum(data[:-1])

        state['work']=sum(data)

        return state

def cpu_load():

        state1=cpu_get_state()

        time.sleep(1)

        state2=cpu_get_state()

        return 100.0*(state2['busy']-state1['busy'])/(state2['work']-state1['work'])



while 1:

        print cpu_load(), '%'

 


2) Загрузка сети
Тут вообще все просто, опять же считаем, сколько байт передалось за секунду.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27


import time

def net_get_state(iface):

        return time.time(),map(int, [ i for i in open('/proc/net/dev').readlines() if i.find(iface)>0 ][0].replace(':',' ').split()[1:][::8] )

def net_load(iface):

        '''(rx, tx) kb/s'''

        t1,state1=net_get_state(iface)

        time.sleep(1)

        t2,state2=net_get_state(iface)

        return map( lambda i,j: 1.0*(i-j)/(t2-t1)/1024, state2, state1)



while 1:

        print net_load('eth0')

 


3) Чтение запись с винта.
В статистике доступно только кол-во прочтенных секторов т.е. * 512 чтобы получить байты.
Программа показывает скорость чтения и записи устройства.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31


import time



def disk_state(disk):

        return time.time(), map(int, [ i.split()[3:] for i in open('/proc/diskstats').readlines() if i.find(disk)>0 ][0] )     

def disk_load(disk):

        '''(read, write) kb/s'''

        t1,s1=disk_state(disk)

        time.sleep(1)

        t2,s2=disk_state(disk)

        dt=t2-t1

        return (s2[2]-s1[2])/dt*512/1024,(s2[6]-s1[6])/dt*512/1024

       

while 1:

        print disk_load('sda')

 


Можно рисовать графики, опрашивать сервера, короче все что душе угодно.

PS: Я не привожу описание файлов из proc, их очень легко найти с подробными комментариями в гугле.


Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 141)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2825 из 215 городов)
            Топ пользователей Топ блогов
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн