是否可以重新启动计算机以响应电子邮件通知?

Rya*_*nIG 29 windows-7 script shell automation windows-10

我正在寻找一种在收到电子邮件通知后重新启动机器的方法。

我想使用它的设置是渲染农场。我们有 5 个盒子,里面有 8 个 Nvidia GTX 980Ti。他们运行的是 Windows 10 Professional 64 位。

我们遇到的问题是它们有时在渲染时冻结或“停滞”。我已经设置好了,一旦发生这种情况,我会收到一封电子邮件,说“x 机器已停止运行”。

我已经自动化了机器上的一切;他们自动登录,打开必要的程序,启动与我们的许可服务器的连接,并映射所有需要的网络驱动器。

基本上,您所要做的就是将其关闭并重新打开,然后它又可以正常工作了。

所以我想知道的是,我可以设置一个程序、事件或脚本,在我收到说机器停止运行的电子邮件后告诉机器重新启动吗?

将运行它的机器运行的是 Windows 7 Pro 64 位。

Law*_*ceC 44

你想要一个叫做“远程电源开关”的设备,我们在我的工作场所用来远程重启电缆调制解调器的设备是下面的 UIS-322b:

在此处输入图片说明

您可以使用 IP 地址设置它,然后登录它以打开、关闭或重启连接的任一设备,并按计划进行设置。您无法通过电子邮件控制它,而是通过 Web 界面进行控制。您仍然可以通过wgetcurl自动向其发送网络请求来装配某些东西。它可能具有我不知道的其他功能和控制可能性。

如果您正在运行消耗大量功率的渲染系统,我不确定上面的特定设备是否可以处理它们,但可能还有其他设备可以处理。另一个需要寻找的是“可控电源板”。

  • 它基本上是 remotelu 为您拔下和插入设备。 (15认同)
  • @RyanIG 也许您可以设置这些设备之一,以便它们每 10 分钟左右自动执行一次硬重置**除非**它们通过以太网获得命令。然后,您可以将计算机连接到它们自己的电源上,并让它们每 3 分钟左右发送一次 *不要重新启动我* 命令。如果计算机挂起,它也会停止发送命令并进行硬重置。它基本上是嵌入式系统中所谓的“看门狗(计时器)”,它会绕过整个电子邮件通信。 (4认同)

Dav*_*ill 33

我可以设置一个程序、事件或脚本来告诉机器重新启动吗?

这取决于你的意思:

他们冻结或“停滞”

如果远程机器以需要“硬重置”的方式挂起,则远程重启将不起作用。

话虽如此,您可以使用shutdown远程重启设备。

例子:

shutdown /r /f /m \\computer
Run Code Online (Sandbox Code Playgroud)
  • /r - 关闭并重新启动计算机。

  • /f - 在不预先警告用户的情况下强制关闭正在运行的应用程序。

  • /m \\computer - 指定目标计算机。

当您收到相应的电子邮件时,您可以从 Outlook 运行上述命令。

以下链接如何:通过 Outlook 中的电子邮件触发应用程序应该可以帮助您入门。


shutdown 用法

F:\test>shutdown /?
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

    No args    Display help. This is the same as typing /?.
    /?         Display help. This is the same as not typing any options.
    /i         Display the graphical user interface (GUI).
               This must be the first option.
    /l         Log off. This cannot be used with /m or /d options.
    /s         Shutdown the computer.
    /r         Shutdown and restart the computer.
    /g         Shutdown and restart the computer. After the system is
               rebooted, restart any registered applications.
    /a         Abort a system shutdown.
               This can only be used during the time-out period.
    /p         Turn off the local computer with no time-out or warning.
               Can be used with /d and /f options.
    /h         Hibernate the local computer.
               Can be used with the /f option.
    /e         Document the reason for an unexpected shutdown of a computer.
    /m \\computer Specify the target computer.
    /t xxx     Set the time-out period before shutdown to xxx seconds.
               The valid range is 0-315360000 (10 years), with a default of 30.
               If the timeout period is greater than 0, the /f parameter is
               implied.
    /c "comment" Comment on the reason for the restart or shutdown.
               Maximum of 512 characters allowed.
    /f         Force running applications to close without forewarning users.
               The /f parameter is implied when a value greater than 0 is
               specified for the /t parameter.
    /d [p|u:]xx:yy  Provide the reason for the restart or shutdown.
               p indicates that the restart or shutdown is planned.
               u indicates that the reason is user defined.
               If neither p nor u is specified the restart or shutdown is
               unplanned.
               xx is the major reason number (positive integer less than 256).
               yy is the minor reason number (positive integer less than 65536).
Run Code Online (Sandbox Code Playgroud)

进一步阅读

  • 感谢您的快速响应!当他们“冻结或停止”时,有时系统会完全挂起并且需要硬重启,其他时候您可以通过命令行或团队查看器重新启动它。我在弄清楚如何将脚本链接到电子邮件时遇到了这个麻烦,您有关于如何执行此操作的线程或资源吗?我们正在使用 gmail,但如果需要,我可以通过 Outlook 运行它。干杯! (2认同)

Ben*_*n N 16

如果您有实际的服务器,它们可能具有远程管理功能,即使机器的主操作系统完全冻结,也可以连接到该功能。通常,您使用 SSH 连接到控制器。发出的具体命令取决于您服务器的品牌。

对于使用 DRAC(戴尔远程访问控制器)的戴尔服务器,SSH 进入 DRAC 后执行的命令是:

racadm serveraction hardreset
Run Code Online (Sandbox Code Playgroud)

这会执行硬重置,相当于拔掉电源线然后重新启动机器。如果机器没有完全挂起,powercycle而不是hardreset可能完成这项工作。(来源。

HP 服务器使用 iLO,也可通过 SSH 访问。硬重置命令很简单:

reset hard
Run Code Online (Sandbox Code Playgroud)

来源,iLO 脚本的官方 PDF 参考。)

您可以使用 DavidPostill 的回答将电子邮件接收与这些命令的执行联系起来。有适用于 Windows 的 SSH 客户端;我相信 PuTTY 有一个命令行界面。


Net*_*Pin 13

使用 Outlook。

答案底部的链接包含有助于此答案的信息。感谢 GuidingTech.com

首先创建一个 .bat 文件。

shutdown.exe /r /t 00

另存为Restart.bat

确保使用您收到电子邮件通知的电子邮件登录计算机。

如果您愿意,您可以为每台计算机设置不同的帐户,并设置电子邮件以将收到的电子邮件作为通知转发。

例子。

Computer1@email.com 是带有非渲染图形卡的主机 PC。

Testemail.com 是您接收通知的电子邮件。

收到电子邮件后,您的 Outlook 会自动将电子邮件转发回相应的电子邮件。在这种情况下是 Computer1@gmail.com

在 Testemail@email.com 收到的 Computer1@email.com 然后将该电子邮件转发到所有计算机。

这里的技巧是为每台计算机设置不同的通知电子邮件,以便它知道要关闭哪个。

对于设置转发规则,请按照以下说明操作,并根据要重新启动的电脑在主题中输入一个词。

注意:这是用于设置您的计算机,您将在接下来我们要设置个人电脑时收到电子邮件。

步骤 1。现在打开 MS Outlook。在主页选项卡下,转到规则并展开 > 菜单。选择管理规则和警报。 在此处输入图片说明

步骤 2.在“规则和警报”窗口中,在“电子邮件”>“规则”选项卡下选中“新规则”。 在此处输入图片说明

第 3 步。首先选择您的模板作为对我接收的消息应用规则。单击下一步。 在此处输入图片说明

第 4 步。我们需要再次指定您要在接收端使用的规则,这将是转发电子邮件出现的计算机。这将是重新启动您指定的计算机的规则。

A.在主题中使用特定词 - 另一个约束,以便更好地识别 >receiving 电子邮件。

B.在正文中使用特定的词——有时,可能只有主语 > 模棱两可。所以一个身体使它更精致。

选择它们并点击下一步。

在此处输入图片说明

现在指定您希望电子邮件查找的内容以触发重新启动。

例如,如果您选择主题。

说你选择的词是Computer1-RenderIssue

您将在“指定要在 subhect 中搜索的单词或短语”中键入它

现在你已经完成了最后一步的设置。

第 5 步。接下来是当收到电子邮件并且>所有条件匹配时要应用的操作。选择启动应用程序并将其删除。 在此处输入图片说明

**注意:**如果你不删除它。如果计算机重新启动它,如果 Outlook 打开它会进入一个循环。

步骤 5a要启动应用程序操作,请单击链接并选择您创建的文件Restart.bat单击下一步。

步骤 5b单击下一步*“是否有任何例外?”

步骤 6为规则命名以供将来参考,将其打开并单击 >Finish。

现在,每当您的一台计算机在渲染时出现问题时,都会使用指定的计算机将电子邮件发送给您。这会将电子邮件转发到该计算机并重新启动计算机。

希望这可以帮助。尝试在做我的工作时尽可能地格式化它。

参考这里的一些工作

  • 那好多了;) (2认同)

Aro*_*ron 6

老实说,如果您只想(硬)弹跳一个盒子,最简单的方法是“按下重置开关”。

由于您需要进行硬重置,您可以在高压端搞砸(相当危险),或者在主板上进行。

一些高端主板有一个内置的网卡/控制器,用于弹跳 PC。但是,您也可以将复位开关连接到继电器板并使用单独的机器进行控制。

我建议通过 GPIO 将 Raspberry Pi 连接到中继板。然后将每个继电器连接到主板上的复位开关。

树莓派 2

树莓派中继帽