2008-10-11 51 views
8

我正在编写一个通过网络为系统供电的脚本。然后我需要在另一台主机上运行一些命令。我如何知道系统是否已开机?我如何知道系统是否已开机?

我的编程语言是Perl,目标主机是RHEL5。

是否有任何内核中断或网络启动信息指示系统已启动且操作系统已加载?

[在不同的情况下]我也想知道,以防万一如果我只是在我的机器手动切换。什么时候它确切地说已经开启。什么时候该操作系统应该完全启动以进行与网络相关的操作,例如在那里执行网络命令。如果系统使用DHCP,那么远程系统如何搜索这台机器呢?[我猜这可能是通过mac地址。但如果我错了]。

如果我错过了任何信息,请随时问我。如果您有任何建议,使工作更容易,请表面他们:)

感谢名单 imkin

回答

12

嗯,我想说的系统启动时,它可以执行你做它的请求。也就是说,sshd守护进程正在运行。这对于你的目的来说足够了(我假设 - 替换你真正需要的守护进程)。

所以,我会送电的信号,检查背部每隔15-30秒,看看我是否可以进行连接。如果我无法在该机器的合理时间内连接(2分钟或5分钟或其他),那么我会向IT支持团队发送警报。那么,我会先把它发给自己,只有一次我调查了几次失败后发现它们都是合法的,我才会开始直接将它发送给IT。

DHCP是一个不同的问题。您必须开始了解广播,或者在引导期间让该机器上的守护程序“回家”以注册其当前IP地址。每次DHCP续订更改其IP地址时,它都必须“回家”。这显然更令人费解。尽可能避免在这些服务器上使用DHCP。

+0

为什么DHCP会更改IP地址? DHCP只是意味着计算机向网络询问地址 - 这并不意味着地址发生变化。什么修复的地址是路由器或任何答复的查询。所有人要做的就是告诉路由器给机器一个固定的IP地址。 – 2008-10-12 08:56:19

+0

DHCP只能*改变IP地址。没有说它*必须*。我们必须以某种方式处理这个问题,即专门配置DHCP服务器,或者处理IP更改。 – Tanktalus 2008-10-12 13:30:42

7

我认为检查sshd听起来像是一个好方法。

对于DHCP问题:如果另一台电脑是在同一个子网,你可以通过使用Net::ARP MAC地址查找。

3

如何在启动时运行的远程机器上添加一个脚本,让它告诉你它何时准备就绪。

9

在重启计算机上,您可以使用特殊的@reboot声明在您的crontab中安装脚本(请参阅man 5 crontab)。该脚本可以向另一台机器发送某种类型的通知,通知它现在已启动。

相关问题