Автостопом по Python.

Psutil.

Psutil (https://pythonhosted.org/psutil/) — это кросс-платформенный (включая Windows) интерфейс для разного рода системной информации (например, ЦП, памяти, дисков, сети, пользователей и процессов). Позволяет с помощью Python получить доступ к информации, которую многие из нас привыкли получать, используя команды Unix (https://en.wikipedia.org/wiki/List_of_Unix_commands) вроде top, ps, df и netstat. Установите его с помощью pip:

$ pip install psutil.

Рассмотрим пример, который наблюдает за перегрузкой сервера (если какой-то тест — сети или ЦП — даст сбой, он отправит электронное письмо):

# Функции для получения значений системы:

From psutil import cpu_percent, net_io_counters.

# Функции для перерыва:

From time import sleep.

# Пакет для сервисов электронной почты:

Import smtplib.

Import string.

MAX_NET_USAGE = 4 00000.

MAX_ATTACKS = 4.

Attack = 0.

Counter = 0.

While attack <= MAX_ATTACKS:

····sleep(4).

····counter = counter + 1.

····# Проверяем использование ЦП.

····if cpu_percent(interval = 1) > 70:

········attack = attack + 1.

····# Проверяем использование сети.

····neti1 = net_io_counters()[1].

····neto1 = net_io_counters()[0].

····sleep(1).

····neti2 = net_io_counters()[1].

····neto2 = net_io_counters()[0].

····# Рассчитываем байты в секунду.

····net = ((neti2+neto2) — (neti1+neto1))/2.

····if net > MAX_NET_USAGE:

········attack = attack + 1.

····if counter > 25:

········attack = 0.

········counter = 0.

# Пишем очень важное электронное письмо, если значение параметра attack больше 4.

TO = "you@your_email.com".

FROM = "webmaster@your_domain.com".

SUBJECT = "Your domain is out of system resources!".

Text = "Go and fix your server!".

BODY = string.join(

·····("From: %s" %FROM,"To: %s" %TO,"Subject: %s" %SUBJECT, "",text), "\r\n").

Server = smtplib.SMTP('127.0.0.1').

Server.sendmail(FROM, [TO], BODY).

Server.quit().

Хорошим примером использования Psutil является glances (https://github.com/nicolargo/glances/) — полностью консольное приложение, которое ведет себя как расширенная версия top (перечисляет запущенные процессы, упорядочивая их по использованию ЦП или другим способом, указанным пользователем) и имеет возможность наблюдать за клиентом и сервером.