Я пытаюсь создать задание крона, которое позволило бы мне контролировать состояние конкретного порта и отсылать уведомление по электронной почте, в то время как это изменяется от состояния слушания до чего-либо еще.
В самом простом случае Вы могли выполнить команду как это:
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
опция получить распечатку результата.