我有一个 NUT 客户端,它要求将其监控的 UPS 命名为ups
。客户端(Synology NAS)不提供更改此配置的方法。我的设置由一个主服务器监控的多个 UPS 组成,我宁愿不命名 1/4 的 UPS,ups
而将其他 3/4 命名为描述性且有助于管理的名称。
我认为我应该能够使用dummy-ups
中继器模式下的驱动程序来创建一个名为的虚拟 UPS ups
,它可以跟踪名为其他名称的真实 UPS 的状态(即eaton1
)。
来自文档,我想我的ups.conf
应该是这样的:
[eaton1]
driver = usbhid-ups
serial = "..."
port = auto
desc = "Eaton PW9130L1500R-XL2U #1"
[eaton2]
driver = usbhid-ups
serial = "..."
port = auto
desc = "Eaton PW9130L1500R-XL2U #2"
#More UPSes...
[ups]
driver = dummy-ups
port = eaton1@localhost
desc = "Dummy UPS"
但这不起作用。当我重新启动 nut 时,我在系统日志中收到以下内容,其中 192.168.1.2 是 Synology NAS 的 IP 地址:
16:09:46 nut-server usbhid-ups[22208]: Startup successful
16:09:46 nut-server usbhid-ups[22210]: Startup successful
[#One for each UPS]
16:09:47 nut-server upsd[22216]: listening on 192.168.1.1 port 3493
16:09:47 nut-server upsd[22216]: listening on localhost port 3493
16:09:47 nut-server upsd[22216]: Can't connect to UPS [ups] (dummy-ups-ups): No such file or directory
16:09:47 nut-server upsd[22216]: Connected to UPS [eaton1]: usbhid-ups-eaton1
16:09:47 nut-server upsd[22216]: Connected to UPS [eaton2]: usbhid-ups-eaton2
16:09:47 nut-server upsd[22217]: Startup successful
16:09:47 nut-server upsmon[22219]: Startup successful
16:09:47 nut-server upsmon[22221]: Poll UPS [ups@localhost] failed - Driver not connected
16:09:47 nut-server upsmon[22221]: Communications with UPS ups@localhost lost
16:09:52 nut-server upsd[22217]: User [email protected] logged into UPS [ups]
16:09:52 nut-server upsmon[22221]: Poll UPS [ups@localhost] failed - Driver not connected
16:09:52 nut-server upsmon[22221]: UPS ups@localhost is unavailable
16:09:57 nut-server upsmon[22221]: Poll UPS [ups@localhost] failed - Driver not connected
16:10:21 upsmon[22221]: last message repeated 3 times
如果我将端口条目留空dummy-ups
,Synology UPS 可以正常连接,但由于dummy-ups
在模拟模式下运行,它无法获取任何 UPS 信息,并且不会在断电时关闭。
我正在运行带有 NUT 2.6.3 的 ubuntu 12.04.5LTS(ubuntu 软件包:2.6.3-1ubuntu1.1)
谢谢你的帮助。
编辑:修复了我的示例中的拼写错误ups.conf
答案1
该问题源于驱动程序之间的竞争状态,在初始化完成之前dummy-ups
启动并尝试连接。usbhid-ups
usbhid-ups
正如NUT 用户邮件列表,在 NUT 2.7.2 之后的版本中,可以通过使用中的maxretry
and/orretrydelay
全局指令来解决这个问题ups.conf
。
对于没有这些选项的 NUT 版本(例如 ubuntu 12.04 中的 2.6.3),可以通过使用以下命令手动启动 UPS(以 root 身份)来解决该问题:
upsdrvctl start ups
通过将上述行添加到 ,可以在启动时自动完成此操作/etc/rc.local
。