3
Дек

Скрипт мониторинга доступности портов в сети с уведомлением на email (.sh) – для Centos 6.5

Данный скрипт можно использовать для любого количества проверяемых хостов.
Вам нужно выбрать хосты в интернете или локальной сети и порты которые Вы хотите мониторить.
После чего в файл /etc/ping/servers необходимо внести список хостов с портами в столбик:
satsis.info:80
hd.zp.ua:80
smtp.mail.ru:25

Скрипт можно поставить на мониторинг раз в минуту. В данном случае будет 5 попыток достучатся до определённого порта и если все 5 попыток неудачны, вы получите e-mail об ошибке. После восстановления работоспособности, получите e-mail о том что всё восстановлено. Все ошибки доступа порта меньше 5-ти, списываем на нестабильный интернет и начинаем проверку по новой. Такое исполнение избавит вас от кучи писем из-за вашего провайдера. В логах ведется информация о проблемах и их решении.
Для собственного мониторинга можно использовать самый дешевый тарифный план на digitalocean за 5$/месяц и существенно сэкономить на мониторинге.
sms можно отправлять к себе на телефон, при помощи услуги мобильных операторов sms на e-mail. Киевстар Украина предоставляет такую услугу за 7 грн в месяц.

[bash title=»код»] #!/bin/sh
DATENOW=$(date +%d-%m-%Y—%T)
CATALOG="/etc/ping/" # Указать каталог где находится данный скрипт
NMAPCAT="/usr/bin/" # Указать при необходимости расположение nmap
WC="/usr/bin/" # Путь к приложению wc
echo "Subject: Monitoring hosts sms Niderlands" > "$CATALOG"mail # Тема письма
echo "From: [email protected]" >> "$CATALOG"mail # От кого шлём письмо
### Создаем при каждом запуске скрипта шапку письма
echo "To: [email protected]" >> "$CATALOG"mail # Кому шлём письмо
echo "CC: [email protected]" >> "$CATALOG"mail # Кому шлём копию письма
echo "" >> "$CATALOG"mail
echo "server time is $DATENOW" >> "$CATALOG"mail
### Делаем выборку из nmap 5 раз с задержкой 5 секунд результат открытости порта
for i in 1 2 3 4 5
do
#for a in $(< "$CATALOG"servers); do( exec 2>/dev/null; echo -en > `echo /dev/tcp/$a | sed -e ‘s/:/\//’` ) || echo $a; done >> "$CATALOG"serverlist$
for a in $(< "$CATALOG"servers); do "$NMAPCAT"nmap `echo $a | sed -e ‘s/:/ -p /’` | grep -q "/tcp *open " || echo $a; done >> "$CATALOG"serverlist_$
echo "Console number is $i"
sleep 5;
done
### Сортируем записи недоступных портов и копируем уникальную запись для отправки в тело письма
/bin/sort -u "$CATALOG"serverlist_n > "$CATALOG"serverlist
### Проверяем количество ошибок в запросе, если равен 5 — то сообщаем о проблеме, если меньше — считаем что неполадки с нашим интернет каналом
if [[ $(cat "$CATALOG"serverlist_n | "$WC"wc -w) -ge 5 ]]
then
cat "$CATALOG"serverlist >> "$CATALOG"mail
echo "" >> "$CATALOG"mail
echo "serv"
else
echo "All OK" >> "$CATALOG"mail
echo "" >> "$CATALOG"mail
echo "ok"
fi
### Проверяем не пропал ли интернет
if [[ $(cat "$CATALOG"servers | "$WC"wc -w) -eq $(cat "$CATALOG"serverlist | "$WC"wc -w) ]]
then
cat /dev/null > "$CATALOG"serverlist_n
echo "lost internet"
exit 1
fi
### Если статус доступности порта изменился — сообщаем об этом на e-mail (при абсолютном значении) + заносим запись в лог
a=`expr $(cat "$CATALOG"serverlist_n | "$WC"wc -w) % 5`
b=`expr $(cat "$CATALOG"serverlist_old | "$WC"wc -w) % 5`
if [[ $(cat "$CATALOG"serverlist_old | "$WC"wc -w) -ne $(cat "$CATALOG"serverlist_n | "$WC"wc -w) && $a -eq 0 && $b -eq 0 ]]
then
cat "$CATALOG"serverlist_n | "$WC"wc -w >> "$CATALOG"mail
cat "$CATALOG"serverlist_old | "$WC"wc -w >> "$CATALOG"mail
/etc/ping/sendmail > /dev/null
echo "————" >> "$CATALOG"log
echo $DATENOW >> "$CATALOG"log
cat "$CATALOG"serverlist >> "$CATALOG"log
cat "$CATALOG"serverlist_n | "$WC"wc -w >> "$CATALOG"log
cat "$CATALOG"serverlist_old | "$WC"wc -w >> "$CATALOG"log
echo "————" >> "$CATALOG"log
echo "send"
fi
### заносим данные в архив для проверки изменения
if [[ $a -eq 0 ]]
then
cat "$CATALOG"serverlist_n > "$CATALOG"serverlist_old
echo "end"
fi
cat /dev/null > "$CATALOG"serverlist_n
exit
fi
[/bash]

Обратная связь

    The average number of adverse effects was 3. T max is 23 minutes in females and 32 minutes in males. What other drugs will affect doxercalciferol Viagra natural sin receta. Archived from the original on 2009-08-14.

    Talk to your doctor before using this form of cefadroxil if you have diabetes. What should I tell my healthcare team before starting CABLIVI? There is no FDA guidance on the use of Tetracycline (oral) with respect to specific gender populations https://www.apotheke-rezeptfreie.com/. Opper K, Uder S, Song K Development of Heterogeneous and Homogeneous Platforms for Rapid Analysis of DNA-Protein Interactions.

    Contact Us