我在 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" [email protected]
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