通过串行端口 (RS232) 接收信号触发服务器关闭

通过串行端口 (RS232) 接收信号触发服务器关闭

我是一名应届毕业生(电子与通讯专业),想从事 Linux 管理工作。我使用一台 Ubunutu 14.04 服务器机器进行研发(带 UPS)。现在我的情况是,每当主电源断电并且 UPS 提供备份时,UPS 必须向服务器机器发送消息或信号并使其关机。如何完成这项任务。有人能帮我吗?请不要发帖说已经有一些这样的工具/软件可用。我需要一个关于这些东西在 Linux 卡顿中如何工作的清晰简介

答案1

请不要发帖说已经有一些这样的工具/软件可用。我需要一个关于这些东西在 linux-carton 中如何工作的清晰简介

恐怕情况确实如此,而且可能是最好的方法。UPS 供应商通常会提供工具来做这样的事情。我拥有一台 APC UPS,供应商提供的软件运行完美。由于您没有提到 UPS 的品牌,我将尝试为您提供更多通用信息。

这是如何运作的?

该软件以守护进程的形式运行,它会监听您在配置文件中指定的任何端口。您还需要指定您的型号,以便守护进程了解其功能和所使用的协议。此信息很可能存储在供应商提供的文件中。通常有多种选项,从 RS232、USB 到以太网或 TCP/IP。配置文件通常提供定义在发生特定事件时要执行的脚本文件的可能性。您可以将关机命令和任何其他命令或脚本放在那里。

最好的办法可能是apcupsdNUT,对于这两种方法,您都可以找到官方的 Ubuntu 文档以及来自其他来源的许多不同的 HowTo。我可以根据个人经验告诉您,配置文件中的 apcupsd 手册页和注释非常有用。

有什么好处?

  • 其中一些守护进程可以以服务器/客户端关系运行。您可以设置一台机器来监控 UPS,并将信息提供给连接到同一 UPS 的其他机器,或者像我的情况一样在同一主机上运行。
  • 其中一些工具为您提供所连接 UPS 的分析和配置功能。
  • 您可以对许多不同的事件做出反应,例如:电池剩余电量、预计电池剩余使用时间、断电后经过的时间,或者上述事件的组合(以先发生者为准)。

你自己该如何做这件事?

  1. 您需要了解所使用的协议。如果幸运的话,供应商会公开记录该协议。如果不是:由于您想使用 RS232,因此您需要某种嗅探器,然后对协议进行逆向工程。
  2. 编写一个守护进程,监听RS232端口,以捕获UPS发送的信息并执行您想要的命令。
  3. 使其通用并在 GPL 下发布。:)
  4. 维护您的代码并跟踪市场上的新模型。

我真的建议您选择第一个选项。

相关内容