我可以让我的服务器在启动 Windows 更新过程之前发送电子邮件吗?
细节
我们在一家托管公司有一个虚拟专用服务器,用于运行多个网站。该服务器目前设置为自动安装更新。在过去几个月中,有几次服务器在 Windows 更新后无法重新启动。我希望在即将应用更新时收到通知,以便我可以在之后不久检查服务器。
服务器信息:
- VPS 在 Microsoft Virtual Server Enterprise Edition 中运行(但我无法控制主机)
- Windows Server 2003 Web 版(32 位)
答案1
重启期间挂起是一个非常常见的问题。我建议改变服务器进行更新的方式,特别是不允许它在更新过程中重启。多年来我一直使用的完全可靠的方法是:
- 当更新可用时,服务器会下载更新(在我的情况下,它们是从 WSUS 服务器获取的),但不会安装。
- 周六晚上运行一个脚本来安装这些更新,但此时服务器尚未重新启动。
- 周日清晨,服务器通过任务调度程序使用批处理文件重新启动。该批处理文件使用shutdown.exe执行重新启动。它首先运行以注销服务器上的任何人,然后再次运行以执行实际重新启动。试图同时执行这两项操作非常不可靠。
自从实施该系统以来,我从未遇到过服务器在重启时挂起的情况。在此之前,每年至少有一台服务器(有时更多)会挂起几次。
除了上述内容之外,我还运行一个批处理文件作为机器启动脚本,当服务器重新启动时,它会向我发送电子邮件。我周日早上第一件事就是查看电子邮件。如果我没有收到来自每个服务器的电子邮件,我就知道我有问题了,因为它要么没有启动重新启动,要么没有完成重新启动。如果服务器因任何原因自行重新启动,它还可以用作方便的警报。
更新:
我使用的安装脚本 (UpdateHF_v2.5.vbs) 由 Rob Dunn 创建,可从以下网址获取这里。我对我的副本做了一些修改以满足我自己的需要。
重启批处理文件是:
@echo off
%windir%\system32\shutdown /l /t 1
%windir%\system32\shutdown /r /t 10 /c "Planned reboot" /f /d P:2:17
发送重启通知电子邮件的批处理文件是(删除了私人信息):
@echo off
c:\windows\blat.exe - -to "list of email addresses, separated with comas" -f "sender email" -s "Reboot Alert (Put the server name here)" -ti 30 -try 120 -noh -body "Whatever message you want" -server mail.server
我使用 blat,但显然您可以使用任何您喜欢的命令行电子邮件程序。