Скрипт проверки открытого порта

Материал из WikiAdmin
Перейти к: навигация, поиск

Этот скрипт позволит с помощью cron периодически проверять локальный или удаленный порт на его наличие. Если порт отсутствует, администратор должен получить уведомление.

Содержание

Скрипт

Итак, запишем сценарий в любой удобный вам файл. Например, в /root/scripts/test_80

cat > /root/scripts/test_80

Текст скрипта:

host=127.0.0.1
for port in  80
do
  if nc -w 4 -z $host $port
  then
    echo port $port is up
  else
    echo port $port is down | mail -s "port result" admin@domain
  fi
done

Расшифровка

Все просто, не так ли? Вы указываете нужный вам хост (удаленный IP, hostname.com или 127.0.0.1). Во второй строке после in укажите нужный вам порт. Например, 80 для проверки работы веб-сервера. Далее программа netcat (nc) будет проверять наличие открытого порта. Учтите, что в некоторых дистрибутивах nc нужно заменить на netcat. Опция -w добавлена, чтобы указать таймаут. В нашем случае, если порт не отвечает 4 секунды, то он считается закрытым. В одной из строк, содержащей команду mail, не забудьте указать свой верный почтовый адрес. Если порт не будет обнаружен, то вам будет выслано уведомление.

Проверка

После того, как скрипт будет исправлен так, как вам нужно, запустите его вручную, указав заведомо закрытый порт. Вам нужно таким образом проверить, приходят ли письма или они уходят в папку СПАМ (например gmail очень любит резать не совсем корректные письма).

Прописка в CRON

Если все приходит как надо, укажите этот скрипт в CRON

* * * * * /root/scripts/test_80 >/dev/null 2>&1

Как это сделать, указано на этой странице. Данная строка поставит скрипт на ежеминутное исполнение. Если ваш сервис перестанет отвечать, в течении минуты вы получите уведомление.

Если эта страница оказалась для вас полезной, нажмите на кнопку. :)
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты