Сейчас просматривают тему: 0 -> --, и гостей: 2

Скрипт мониторинга доступности портов в сети с уведомлением на email – Mikrotik (Metarouter-OpenWrt)

Ссылка на пост #1 Добавлено: 11 декабря 2014 00:49
Автор темы
Макс
Администраторы
Азъ: библиАтекарь
Возраст: 41 Водолей
Пол:
С нами: 16 лет 6 месяцев
Сообщений: 10637
Поблагодарил: 7256
Благодарностей: 27429
Предупреждений: 0

Награды:

       

Скрипт предназначен для мониторинга состояния хостов по портам в локальной сети или интернет.
Для использования данного скрипта необходимо воспользоваться возможностью создания виртуальной системе на роутерах Mikrotik
Для начала импортируем образ openwrt-mr-mips-rootfs-31411-basic.tar.gz в качестве операционной системы (как это сделать опишем в другой статье, советуем поискать в интернете, есть описания с картинками)
После чего нам понадобиться редактор nano (по желанию), обязательно пакет msmtp – для отправки почты с Mikrotik и сам скрипт.
Код:[Выделить]
opkg install nano opkg install msmtp


Закидываем все в каталог /www/ping/ и даем права на выполнение всем файлам каталога.
Код:[Выделить]
chmod 755 -R /www/ping/


Сам скрипт /www/ping/monitor:

Код:[Выделить]
DATENOW=$(date +%d-%m-%Y--%T) echo "Subject: Monitoring hosts sms Mikrotik" > /www/ping/mail echo "From: mail@hd.zp.ua.ru" >> /www/ping/mail ### Создаем при каждом запуске скрипта шапку письма echo "To: mail@hdtv.zp.ua" >> /www/ping/mail echo "CC: mail2@hdtv.zp.ua" >> /www/ping/mail echo "" >> /www/ping/mail echo "server time is $DATENOW" >> /www/ping/mail ### Делаем выборку из nmap 5 раз с задержкой 5 секунд результат открытости порта for i in 1 2 3 4 5 do cat /www/ping/servers | while read a; do /usr/bin/nmap `echo $a | sed -e 's/:/ -p /'` | grep -q "/tcp *open " || echo $a done >> /www/ping/serverlist_n echo "Console number is $i" sleep 5; done ### Сортируем записи недоступных портов и копируем уникальную запись для отправки в тело письма /usr/bin/sort -u /www/ping/serverlist_n > /www/ping/serverlist ### Проверяем количество ошибок в запросе, если равен 5 - то сообщаем о проблеме, если меньше - считаем что неполадки в интернете if [[ $(cat /www/ping/serverlist_n | /usr/bin/wc -w) -ge 5 ]] then cat /www/ping/serverlist >> /www/ping/mail echo "" >> /www/ping/mail echo "serv" else echo "All OK" >> /www/ping/mail echo "" >> /www/ping/mail echo "ok" fi ### Проверяем не пропал ли интернет if [[ $(cat /www/ping/servers | /usr/bin/wc -w) -eq $(cat /www/ping/serverlist | /usr/bin/wc -w) ]] then cat /dev/null > /www/ping/serverlist_n echo "lost internet" exit 1 fi ### Если статус доступности порта изменился - сообщаем об этом на e-mail (при абсолютном значении) + заносим запись в лог a=`expr $(cat /www/ping/serverlist_n | /usr/bin/wc -w) % 5` b=`expr $(cat /www/ping/serverlist_old | /usr/bin/wc -w) % 5` if [[ $(cat /www/ping/serverlist_old | /usr/bin/wc -w) -ne $(cat /www/ping/serverlist_n | /usr/bin/wc -w) && $a -eq 0 && $b -eq 0 ]] then cat /www/ping/serverlist_n | /usr/bin/wc -w >> /www/ping/mail cat /www/ping/serverlist_old | /usr/bin/wc -w >> /www/ping/mail /www/ping/sendmail > /dev/null echo "------------" >> /www/ping/log echo $DATENOW >> /www/ping/log cat /www/ping/serverlist >> /www/ping/log cat /www/ping/serverlist_n | /usr/bin/wc -w >> /www/ping/log cat /www/ping/serverlist_old | /usr/bin/wc -w >> /www/ping/log echo "------------" >> /www/ping/log echo "send" fi ### заносим данные в архив для проверки измненения if [[ $a -eq 0 ]] then cat /www/ping/serverlist_n > /www/ping/serverlist_old echo "end" fi cat /dev/null > /www/ping/serverlist_n exit fi


Файл конфига тулзы msmtp, для отправки почты через внешний smtp почтовый сервер:
nano /www/ping/sendmail

Код:[Выделить]
MAIL_SERVER=smtp.mail.ru MAIL_PORT=465 MAIL_DATE=`date +"%d %b %Y %T"` MAIL_FROM=mail@mail.ru MAIL_TO=mail@hd.zp.ua MAIL_PASSWORD=pass cat /www/ping/mail | /usr/bin/msmtp --host=${MAIL_SERVER} --port=${MAIL_PORT} --tls=on --tls-certcheck=off --tls-starttls=off --auth=login --user=${MAIL_FROM} --passwordeval="echo ${MAIL_PASSWORD}" -f ${MAIL_FROM} ${MAIL_TO} -d


nano /www/ping/servers – список хостов для мониторинга
192.168.0.31:80
192.168.0.30:80
hd.zp.ua:80

собственно после проделанного, добавляем наш скрипт в crontab для выполнения, например раз в час.
Чаще не советую, из-за слабого процессора на Mikrotik
maxya Тётя шура тут
«Все постоянно твердят об авторских правах, но никогда - об авторских обязанностях.» © Жан-Люк Годар

Мой телевизор: Samsung LE-32C550J1WXUA, Samsung UE55D6100, Samsung UE65°ES8007

Мой ресивер: Sat-Integral S-1248 HD Heavy Metal, Vu+ Ultimo 4K

Мои спутники: 4°W+4.8°E+9°E+13°E+36°E+75°E+85°E+90°E

Cказали Спасибо: 1 : leha87
Информация

Посетители, находящиеся в группе Гости, не могут оставлять сообщения в данной теме.

    XML error in File: https://www.tricolor.tv/rss/

    XML error: error parsing attribute name at line 533

Футбол

Італія. Серія А, 35 тур
05 травня 2024
13:30 Кальярі Кальярі -:- ЛеччеЛечче
Іспанія. Ла Ліга, 34 тур
05 травня 2024
15:00 Осасуна Осасуна -:- Реал БетісРеал Бетіс
Італія. Серія А, 35 тур
05 травня 2024
16:00 Емполі Емполі -:- ФрозінонеФрозіноне
16:00 Верона Верона -:- ФіорентинаФіорентина
Англія. Прем'єр-ліга, 36-й тур
05 травня 2024
16:00 Челсі Челсі -:- Вест ГемВест Гем
16:00 Брайтон Брайтон -:- Астон ВіллаАстон Вілла
Німеччина. Бундесліга, 32 тур
05 травня 2024
16:30 Уніон Берлін Уніон Берлін -:- БохумБохум
Іспанія. Ла Ліга, 34 тур
05 травня 2024
17:15 Сельта Сельта -:- ВільярреалВільярреал
Німеччина. Бундесліга, 32 тур
05 травня 2024
18:30 Айнтрахт Франкфурт Айнтрахт Франкфурт -:- Баєр ЛеверкузенБаєр Леверкузен
Англія. Прем'єр-ліга, 36-й тур
05 травня 2024
18:30 Ліверпуль Ліверпуль -:- ТоттенгемТоттенгем
Італія. Серія А, 35 тур
05 травня 2024
19:00 Мілан Мілан -:- ДженоаДженоа
Іспанія. Ла Ліга, 34 тур
05 травня 2024
19:30 Валенсія Валенсія -:- АлавесАлавес
Німеччина. Бундесліга, 32 тур
05 травня 2024
20:30 Гайденгайм Гайденгайм -:- МайнцМайнц
Італія. Серія А, 35 тур
05 травня 2024
21:45 Рома Рома -:- ЮвентусЮвентус
Іспанія. Ла Ліга, 34 тур
05 травня 2024
22:00 Райо Вальєкано Райо Вальєкано -:- АльмеріяАльмерія
22:00 Севілья Севілья -:- ГранадаГранада

Обновлено: 06:23 05.05.2024

Телепрограмма

СТБ
05:05 - Т/с "След". "Опасная связь", 2 ч.
06:15 - Т/с "След". "Отравление младенцев".
07:05 - Т/с "След". "Плохие люди".
08:00 - Т/с "След". "Потрошитель".
Sport 1
05:10 - Футбол. Чемпионат Австрии. Бундеслига. ЛАСК - Рапид Вена.
07:00 - Баскетбол. Чемпионат Испании. АБК Лига. Обрадойро - Андорра.
08:50 - Фигурное катание. Гран-при ISU. NHK Trophy в Осаке, Япония. Пары. Короткая программа.
10:00 - Гандбол. Чемпионат Германии. Бундеслига. Райн-Неккар Лёвен - Ганновер-Бургдорф.
ICTV
06:00 - "Единые новости". Телемарафон.
07:00 - "Единые новости". Телемарафон.
08:00 - "Единые новости". Телемарафон.
09:00 - Общенациональная минута молчания.
Кинопремьера
05:40 - Х/ф "Братство четырёх Л".
07:25 - Х/ф "Черный шум".
08:55 - Х/ф "Корабль призраков".
10:55 - Х/ф "Чемпион мира".
Вся телепрограмма

Мы в Вконтакте

Мы в Facebook

Голосование

Сколько телевизоров у Вас дома?

1
2
3
4
5
6
7

Случайное фото

Sat-integral club

Re: ПО Sat-Integral S-1218-28HD / S-1248-58-68HD / S-1311 HD COMBO v3.42

У нас в деревне в кагате (это огромный полуподвал для хранения овощей) производят (типа производят) ...

Re: ПО Sat-Integral S-1218-28HD / S-1248-58-68HD / S-1311 HD COMBO v3.42

Цитата: банан от Вчера в 21:57:16схожому(UK43MLB6300) ТВ я радів у 2018.. тільки недовго! в мому ...

Re: ПО Sat-Integral S-1218-28HD / S-1248-58-68HD / S-1311 HD COMBO v3.42

Цитата: игорь67 от Сегодня в 00:01:58Телевізор Орізон (виробник м. Сміла.  кінець 90-х )  ...

Re: ПО Sat-Integral S-1218-28HD / S-1248-58-68HD / S-1311 HD COMBO v3.42

Цитата: Pavel01 от 01 мая 2024, 05:46:58Можно подробнее. Когда, где у кого был спутниковый ресивер ...

Re: ПО Sat-Integral S-1218-28HD / S-1248-58-68HD / S-1311 HD COMBO v3.42

Цитата: Pavel01 от Вчера в 17:22:26LG webos TV UK 6400 PL Fg. Так написано имя телевизора в ...

PHP: mail() через внешние SMTP msmtp

Ситуация следующая. ...

webhook telegram Read timeout expired

Вы выполняете ...