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