我有 2 台服务器。其中之一经常崩溃。我想在手机崩溃时向其发送短信。
我在另一台服务器上编写了这个简单的 bash 脚本,并将其放入 crontab 中每 10 分钟运行一次。
wget --spider http://mywebsite.com || php sendsms.php
这是正确的方法吗?有时我会收到短信,但我看到服务器正在运行,没有任何问题。
答案1
您应该能够从输出中看出失败的wget --spider ...
原因。wget
该信息将通过电子邮件发送给运行脚本的用户,或者,如果您使用
[email protected]
您可以将其重定向到您的电子邮件帐户以供审核。
如果存在虚假网络或 DNS 错误,您可以仔细检查以查看不可用是否是暂时的,从而减少误报数量:
wget --spider -a /var/tmp/wget_test.log http://mywebsite.com || (sleep 10; wget --spider http://mywebsite.com ) || php sendsms.php
请注意,我已经进行了第一次尝试,将输出附加到日志文件(而不是打印到 stderr)。这样,如果一切正常,您就不会每 10 分钟收到一封电子邮件。
每次wget
运行都会在尝试该 url 时首先打印日期时间戳和 url。通过将第二次通过电子邮件发送的输出中的日期时间戳与日志文件中的wget
日期时间戳进行匹配,您将能够查看第一次失败并通过第二次的所有运行。wget