Как создать задание cron для мониторинга состояния порта?
Я пытаюсь создать задание cron, которое позволило бы мне отслеживать состояние определенного порта и отправлять уведомления по электронной почте, в то время как он переходит из состояния прослушивания в другое состояние.
2 ответа
В простейшем случае вы можете запустить команду, подобную этой:
lsof -i :22 | grep LISTEN
Итак, чтобы он запускался каждые 5 минут и отправлял электронное письмо, если порт не прослушивает, добавьте его в ваш crontab:
*/5 * * * * lsof -i :22 | grep LISTEN || echo "Not listening" | mail you@email.com
Это, конечно, предполагает, что вы уже настроили свою машину для mail команда.
Код выхода nc -z localhost port_num, где port_num порт, который вы хотите проверить, может быть полезным здесь. Если nc можно подключиться к порту, тогда код выхода 0; в противном случае код выхода 1,
Вы также можете добавить -v возможность получить распечатку результата.