Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Как отправить администратору смс о неработающем Mikrotik Routerboard

 18 Авг 2011    MikroTik, Scripts

 

Рассматриваем скрипт для отправки смс администратору в случае, если связь с Mikrotik Routerboard отсутствует.

Разбираем созданный скрипт:

#!/usr/bin/python

# -*- coding: utf-8 -*-

Импортируем необходимые модули:

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEBase

from email.mime.multipart import MIMEMultipart

from email.header import Header

import email

import mimetypes

import os

Создаем функцию для отправки писем. Имя функции - mail, и она будет принимать значение переменной mail_text (текст письма):

def mail(mail_text):

mail_from = 'asp24@gmail.com' # отправитель

mail_to = '380684545342@sms.beeline.ua' # Получатель

mail_subj = 'No WORK!' # заголовок письма

mail_coding = 'windows-1251

Параметры SMTP-сервера:

smtp_server = "smtp.gmail.com"

smtp_port = 587

smtp_user = "asp24@gmail.com" # пользователь smtp

smtp_pwd = "asp24pass" # пароль smtp

Формирование сообщения:

multi_msg = MIMEMultipart()

multi_msg['From'] = Header(mail_from, mail_coding)

multi_msg['To'] = Header(mail_to, mail_coding)

multi_msg['Subject'] = Header(mail_subj, mail_coding)

msg = MIMEText(mail_text.encode('cp1251'), 'plain', mail_coding)

msg.set_charset(mail_coding)

multi_msg.attach(msg)

Отправка:

smtp = smtplib.SMTP(smtp_server, smtp_port)

smtp.ehlo()

smtp.starttls()

smtp.ehlo()

smtp.login(smtp_user, smtp_pwd)

smtp.sendmail(mail_from, mail_to, multi_msg.as_string())

smtp.quit()

Перейдем к редактированию основного скрипта, из которого будет вызываться функция.

#!/usr/bin/env python

# -*- coding: utf_8 -*-

import time

import subprocess

Импортируем модуль с новой функцией import nowork_sms

ip_list = ["192.168.4.1", "192.168.4.2", "10.0.0.25", "10.0.0.26"]

while 1:

for ip in ip_list:

ping = subprocess.call(["ping", "-c 4", ip])

if ping == 0:

print u"Все хорошо"

else:

print u"Маршрутизатор %s не доступен" % (ip)

 

Вызов функции. В ходе выполнения скрипт определяет, какой IP не доступен и вызывает функцию mail подставляя переменную ip, то есть ip Mikrotik Routerboard:

nowork_sms.mail(ip)

subprocess.call(["play", "pick2.wav"])

time.sleep(15)

 

 Отправляем смс администратору о неработающем Mikrotik Routerboard

Рис.1. Нет отправленных.

 

 Работа скрипта

Рис.2. Работа скрипта.

 

В ходе работы скрипт определил, что Mikrotik Routerboard с IP-адресом 10.0.0.25 не доступен и вызвал функцию nowork_sms.mail(ip),  подставив в нее значение IP-адреса.

 

 Как отправить администратору смс о неработающем Mikrotik Routerboard.

Рис.3. Отправленные письма.

 

Перейдя в раздел "отправленные" мы видим, что было отправлено письмо с IP-адресом неработающего Mikrotik Routerboard и в скором времени администратор получит смс.

 

Евгений Рудченко специально для ASP24.