Mac OS X сообщает по электронной почте, когда установлено соединение с определенными портами (открыт в брандмауэре)

У меня на Mac открыты порты для определенных служб. Есть ли способ получить отчет ОС по электронной почте (Smtp) после установления соединения с одним из интересующих портов?

1 ответ

Решение

Самое простое решение - использовать crontab. Создайте файл, подобный следующему:

#!/bin/sh
t=1197
while [ $t -gt 0 ]; do
ports="$(netstat -n | grep "ESTABLISHED" | awk '{print $4}' | grep -E '.*\.(80|5500|and other interested ports)$')"
if [ "$ports" ];
then t=0; echo $ports | mail -s "subject" your_mail@mail.com
fi
sleep 3
t=$((t-3))
done

Сохранить как 123.sh и сделать его исполняемым: chmod +x /path/to/123.sh, Создайте в своем пользовательском каталоге .crontab файл:

*/20 * * * * /path/to/123.sh

Проверка будет выполняться каждые 3 секунды, но разница во времени между уведомлениями будет не менее 20 минут, чтобы не превращать ее в спам. Вы можете поменять эти цифры на другие, что подходит именно вам. И наконец - вам нужно указать демон crontab в файл: crontab ~/.crontab

Другие вопросы по тегам