使用 Linux cron 作业自动检测服务器停机时间

2021-09-04 16:13:55 浏览数 (2641)

如果运行网站,你可能会遇到一些停机时间。有时,Web 服务器可能会关闭。如果我们能在服务器宕机时收到一封电子邮件,是一件非常好的事儿。

我们可以轻松安排 Linux 作业,该作业会定期检查网站状态并在出现问题时发送电子邮件。这篇文章展示了如何创建一个 Linux cronjob 来检测网站停机时间并发送电子邮件。

步骤 1:创建一个名为“downtime_detector.sh”的脚本文件。

可以在你的主目录下创建该文件。将以下文本复制到创建的脚本文件中。

if curl -s "http://www.programcreek.com/2016/08/leetcode-russian-doll-envelopes-java/" | grep -q "Russian Doll Envelopes"
then
    # if the keyword is in the content
    echo " the website is working fine"
else
    echo "Program Creek Error" | /usr/sbin/sendmail youremail@gmail.com
fi

该脚本检查目标网页是否包含字符串“Russian Doll Envelopes”。如果页面包含字符串,则页面将正确呈现。如果没有,则会向电子邮件地址发送一条消息。

第 2 步:在 Linux 机器上安装“sendmail”。

“sendmail”是一种流行且可靠的工具,可以轻松设置以在 Linux 下发送电子邮件。

sudo apt-get install sendmail

第 3 步:创建一个 cronjob。

输入“crontab -e”来编辑 cronjob 列表。

附加以下行:

*/5 * * * * /path/to/script/downtime_detector.sh

就是这样。与其他在线停机检测服务相比,这种方法非常灵活,你可以将其更改为你喜欢的任何内容。这种方法不需要额外的服务器,但如果服务器完全关闭,检测脚本根本不会运行,那么拥有一个单独的服务器会更好。