Мы можем работать, заниматься какими-то другими делами и при этом даже не подозревать, что один из маршрутизаторов Mikrotik Routerboard недоступен.
Рис.1. Схема сети.
Для того, чтобы мы были в курсе дел, напишем скрипт, который будет проверять статус Mikrotik Routerboard и, если какой-то Mikrotik Routerboard недоступен, выдаст звуковое сообщение.
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import time
import subprocess
ip_list = ["192.168.4.1", "192.168.4.2", "10.0.0.25"]
while 1:
for ip in ip_list:
ping = subprocess.call(["ping", "-c 4", ip])
if ping == 0:
print u"Все хорошо"
else:
print u"Маршрутизатор %s не доступен" % (ip)
subprocess.call(["play", "pick2.wav"])
time.sleep(15)
Разберем скрипт:
Импортируем модули:
import time
import subprocess
Создаем список с IP-адресами устройств Mikrotik Routerboard:
ip_list = ["192.168.4.1", "192.168.4.2", "10.0.0.25"]
Запускаем бесконечный цикл:
while 1:
В цикле for заносим по очереди значения IP-адресов из списка ip_list в переменную ip:
for ip in ip_list:
Выполняем команду ping и помещяем результат в ping:
ping = subprocess.call(["ping", "-c 4", ip])
Если действие выполнено успешно, то ping будет равен нулю, если нет - единице.
Выполняем проверку if ping == 0:
Если ping равен нулю, то выводим сообщение: print u"Все хорошо"
Если ping не равен нулю то выводим сообщение: print u"Маршрутизатор %s не доступен" % (ip) и подставляем значение IP-адреса.
Воспроизводим звуковой файл:
subprocess.call(["play", "pick2.wav"])
Чтобы выполнить play pick2.wav для операционной системы ubuntu, нужно выполнить установку программы:
apt-get install sox
Усыпляем скрипт, чтобы мы успели увидеть, какой маршрутизатор недоступен:
time.sleep(15)
Рис.2. Работа скрипта.
На рисунке 2 мы видим, как скрипт проверил связь в первым устройством и вывел сообщение "Все хорошо".
Рис.3. Вывод звукового сигнала.
Маршрутизатор с IP-адресом 10.0.0.25 оказался недоступен, поэтому скрипт вывел соответствующие текстовое и звуковое сообщения.
Евгений Рудченко специально для ASP24.



