我想监控三个服务器页面。这三个页面包含一个简单的文本(例如,它说它“工作正常”)。当显示除此消息之外的任何内容时(例如通过电子邮件),我希望收到通知。
我想要 shell 脚本代码来在 html 文件中显示三个页面的状态。
答案1
如果您的页面是正确的 HTML 页面并且您不想解析它,您可能需要先使用lynx
(老式的文本浏览器)将 HTML 呈现为纯文本(使用标志--dump
):
for lnk in http://foo.example.com \
http://bar.example.com \
http://stats.example.com/stillrunning.html
do
lynx --dump "${lnk}" \
| grep "working fine" \
|| mailx -s "${lnk} failed" [email protected]
done
答案2
您可以使用其中一个curl
或wget
与来bash
完成您想要的事情。
$ wget -O- http://example.com | grep "working fine" || mailx -s "Oh NO" you ...