问题:
我已将服务器的 BIOS 设置为断电后自动恢复最后状态(运行/关闭)。
现在,当系统断电恢复时,我如何给自己发送电子邮件?
我知道这是可能的,因为我的 Synology Diskstation 可以做到这一点(这也是我最初产生这个想法的原因)。遗憾的是,我无法逆向分析它是如何做到的。
答案1
添加 RC 脚本或等效脚本。让它在正常关机时接触文件。在启动时,让它检查文件,如果文件不存在则发送电子邮件。例如:
#!/bin/bash
SHUTDOWNFILE=/etc/normalshutdown
if [ ${1} = "stop" ] then touch "${SHUTDOWNFILE}"
elif [ ${1} = "start" ]
then
if [ ! -e "${SHUTDOWNFILE}" ]
then
mail -s "Power failure, recovered" [email protected]
else
rm "${SHUTDOWNFILE}"
fi
fi
(您可能需要对其进行调试,并注意安全性,以避免意外地授予用户创建与此冲突的文件的权限)
答案2
只需添加如下内容即可/etc/rc.local
:
echo "Subject: `/bin/hostname` has booted @ `date '+%Y/%m/%d %H:%M:%S'`"|/usr/lib/sendmail -i [email protected]
这将发送电子邮件每一个启动时,而不仅仅是断电后。如果您只想在断电后发送电子邮件,则需要更多逻辑。就我个人而言,我喜欢知道我的某个服务器何时重新启动 - 特别是如果它不是故意重新启动。
答案3
您需要在系统硬件上安装内部 IPMI(可以通过电子邮件报告断电和硬件故障)
其次,我认为最重要的是...检查系统健康状况的外部系统。
Nagios 和 Cacti 都提供这些功能。Cacti
实际上是两者中比较简单的一个(Nagios 的维护起来相当复杂)使用 SNMP 或简单的 ping。(也可以是其他服务)
基本上,该工具允许您每隔(确定的)分钟进行轮询...以获得响应...在(确定的)失败后,它会向您发送一封电子邮件...
这是典型的系统管理员通知工具集。:D