监视服务器重新启动的最佳方法是什么?[关闭]

What's the best way to monitor a server reboot? [closed]

提问人:Helena Raia 提问时间:7/13/2021 更新时间:7/13/2021 访问量:695

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章用事实和引文来回答。

2年前关闭。

我有一个重新启动服务器的 powershell 脚本。我还希望这个脚本能够监视服务器何时关闭以及何时重新启动。 现在我正在使用命令:

   Test-Connection

这是正确的方法吗?有没有更好的方法可以做到这一点?也许通过事件查看器?

感谢您抽出宝贵时间接受采访

PowerShell 重启

评论

0赞 Santiago Squarzon 7/13/2021
通常您可以使用循环与 组合,我看不出这有什么问题。如果 ICMP 已过滤,则可以使用您知道正在侦听远程主机上的端口。whileTest-ConnectionStart-SleepTest-NetConnection
0赞 Jonathan Waring 7/13/2021
如何重新启动计算机? 有一个内置的等待开关,用于等待,您可以指定特定服务等链接Restart-Computer
0赞 Helena Raia 7/13/2021
是的,我正在使用 Restart-Computer 重新启动服务器。我使用 while 选项是一个很好的方法。我已经在这样做了,我只是不确定是否有更可靠的方法(如事件查看器)来监控重启过程。感谢您的帮助!
0赞 TylerH 7/14/2021
使用 Solarwinds 或 Kaseya 等工具。

答:

1赞 FoxDeploy 7/13/2021 #1

这是我在此类情况下使用的常见脚手架:

$maxTries = 15
while (-not(test-connection offLinePC -Count 1 -quiet)){
    "trying again..."
    $i++
    if ($i -eq $maxTries){break;}
}

如果你不需要有最大尝试次数,你可以像这样简化它......

while (-not(test-connection offLine -Count 1 -quiet)){
    "Waiting for `offLine ` to reboot...trying again..."
}
else{
    "offLine is back online!"
}

简单改进

我实际上真的很不喜欢 的语法,所以我在我的脚本中烘焙了一个小函数,如下所示:Test-Connection

function WaitForReboot{param($HostName)
    test-connection $HostName -Count 1 -quiet
}

while (WaitForReboot OffLinePc){
    "trying again..."
}