我正在尝试创建一个 cron 作业,以便我监视特定端口的状态,并在其从监听状态转变为其他状态时通过电子邮件发送通知。
答案1
在最简单的情况下,您可以运行如下命令:
lsof -i :22 | grep LISTEN
因此,要使其每 5 分钟运行一次,并在端口未监听时发送电子邮件,请将其添加到您的 crontab 中:
*/5 * * * * lsof -i :22 | grep LISTEN || echo "Not listening" | mail [email protected]
当然,这假设您已经为该mail
命令设置了您的机器。
答案2
退出代码nc -z localhost port_num
(其中port_num
是您要检查的端口)可能在这里有用。如果nc
可以连接到端口,则退出代码为0
;否则,退出代码为1
。
您还可以添加-v
选项来打印结果。