Получение разрешения на отказ с помощью Wget

Возможно, вы захотите попробовать sysmon. Хотя это и не так интересно, как Glances, он очень прост и прост в использовании.

Если вы хотите грязно и немного писать скрипты на python, вот некоторые основы системного мониторинга с Python, чтобы вы начали.

Вам понадобится внешний модуль, называемый psutil контролировать большинство вещей.

Примечание: эти примеры написаны на Python 2.7

sudo apt-get install pip
sudo pip install psutil

Теперь, когда у нас установлены модули, мы можем начать кодирование.

Сначала создайте файл с именем usage.py.

gedit ~/usage.py

Начните с импорта psutil

import psutil

Затем создайте функцию для мониторинга процент ваших ядер процессора работает.

def cpu_perc(): 

    cpu_perc = psutil.cpu_percent(interval=1, percpu=True) 
    for i in range(len(cpu_perc)):
        print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"

Давайте немного сломаем это?

Первая строка, cpu_num = psutil.cpu_percent(interval=1, percpu=True), находит процент, который ядра в вашем процессоре работает и присваивает его списку с именем cpu_perc.

Этот цикл прямо здесь

for i in range(len(cpu_num)):
    print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"

- это цикл цикла, который выводит текущий процент от каждого

Давайте добавим использование ОЗУ.

Создайте функцию с именем ram_perc.

def ram_perc():
    mem = psutil.virtual_memory()
    mem_perc = mem.percent
    print "RAM: ", mem_perc, "%"

psutil.virtual_memory дает набор данных содержащие различные факты об ОЗУ на вашем компьютере.

Затем вы можете добавить некоторые факты о своей сети.

def net():
    net = psutil.net_io_counters()
    mbytes_sent = float(net.bytes_sent) / 1048576
    mbytes_recv = float(net.bytes_recv) / 1048576
    print "MB sent: ", mbytes_sent
    print "MB received: ", mbytes_recv

Поскольку psutil.net_io_counters() предоставляет только информацию о отправляемых пакетах и полученных в байтах, необходимо было преобразование.

Чтобы получить некоторую информацию о пространстве подкачки, добавьте эту функцию.

def swap_perc():
    swap = psutil.swap_memory()
    swap_perc = swap.percent

Это довольно просто.

Температура очень сложная, поэтому вам, возможно, потребуется провести собственное исследование, чтобы выяснить, что будет работать с вашим оборудованием. Вам нужно будет отобразить содержимое определенного файла.

Использование диска намного проще, чем температура. Все, что вам нужно сделать, это передать диск, который вы хотите контролировать (например: /) через определенную функцию.

def disks():
    if len(sys.argv) > 1:
        for disk in range(1, len(sys.argv)):
            tmp = psutil.disk_usage(sys.argv[disk])
            print sys.argv[disk], "\n"
            print "Megabytes total: ",
            print str(float(tmp.total) / 1048576)
            print "Megabytes used: ",
            print str(float(tmp.used) / 1048576)
            print "Megabytes free: ",
            print str(float(tmp.free) / 1048576)
            print "Percentage used: ",
            print tmp.percent, "\n"

Исходный вывод psutil.disk_usage - это

>>>psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)

, но вы также можете просто получить total, used, free или percent.

Завершенная программа: (вышеупомянутые функции были объединены) [!d25 ]

import psutil, os, sys
mem_perc = 0 #init var
swap_perc = 0 #init var
mbytes_sent = 0 #init var
mbytes_recv = 0 #init var
cpu_perc = 0 #init var
swap = 0 #init var
mem = 0 #init var
net = 0 #init var



def disp(degree):
    global cpu_perc
    global swap
    global swap_perc
    global mem
    global mem_perc
    global net
    global mbytes_sent
    global mbytes_recv

    cpu_perc = psutil.cpu_percent(interval=1, percpu=True)
    swap = psutil.swap_memory()
    swap_perc = swap.percent
    mem = psutil.virtual_memory()
    mem_perc = mem.percent
    net = psutil.net_io_counters()
    mbytes_sent = float(net.bytes_sent) / 1048576
    mbytes_recv = float(net.bytes_recv) / 1048576

    os.system('clear') #clear the screen

    print "-"*30
    print "CPU"
    print "-"*30
    print "CPU Temperature: " , degree, "'C"
    for i in range(len(cpu_perc)):
        print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"

    print "-"*30
    print "MEMORY"
    print "-"*30
    print "RAM: ", mem_perc, "%"
    print "Swap: ", swap_perc, "%"
    print "-"*30
    print "NETWORK"
    print "-"*30
    print "MB sent: ", mbytes_sent
    print "MB received: ", mbytes_recv
    print "-"*30
    print "DISKS"
    print "-"*30

    if len(sys.argv) > 1:
        for disk in range(1, len(sys.argv)):
            tmp = psutil.disk_usage(sys.argv[disk])
            print sys.argv[disk], "\n"
            print "Megabytes total: ",
            print str(float(tmp.total) / 1048576)
            print "Megabytes used: ",
            print str(float(tmp.used) / 1048576)
            print "Megabytes free: ",
            print str(float(tmp.free) / 1048576)
            print "Percentage used: ",
            print tmp.percent, "\n"

def main():
    print("Press Ctrl+C to exit")
    while True:
        temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
        temp = float(temp) / 1000
        disp(temp)

main()

Строка temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C') может не работать с вашей аппаратной конфигурацией.

Запустить эту программу из командной строки. Передайте диски, которые вы хотите отслеживать в качестве аргументов из командной строки.

$ python usage.py /

Press Ctrl+C to exit

------------------------------
CPU
------------------------------
CPU Temperature:  39.0 'C
CPU Core 1 : 4.8 %
CPU Core 2 : 1.0 %
CPU Core 3 : 0.0 %
CPU Core 4 : 4.9 %
------------------------------
MEMORY
------------------------------
RAM:  33.6 %
Swap:  6.4 %
------------------------------
NETWORK
------------------------------
MB sent:  2.93382358551
MB received:  17.2131490707
------------------------------
DISKS
------------------------------
/ 

Megabytes total:  13952.484375
Megabytes used:  8542.6640625
Megabytes free:  4678.5703125
Percentage used:  61.2 

/media/calvin/Data 

Megabytes total:  326810.996094
Megabytes used:  57536.953125
Megabytes free:  269274.042969
Percentage used:  17.6 

Надеюсь, это поможет! Прокомментируйте, если у вас есть вопросы.

sysmon

1
задан 7 September 2014 в 22:03

0 ответов

Другие вопросы по тегам:

Похожие вопросы: