NUT UPS-Synology NAS 中继器模式下的虚拟驱动器

NUT UPS-Synology NAS 中继器模式下的虚拟驱动器

我有一个 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-upsusbhid-ups

正如NUT 用户邮件列表,在 NUT 2.7.2 之后的版本中,可以通过使用中的maxretryand/orretrydelay全局指令来解决这个问题ups.conf

对于没有这些选项的 NUT 版本(例如 ubuntu 12.04 中的 2.6.3),可以通过使用以下命令手动启动 UPS(以 root 身份)来解决该问题:

upsdrvctl start ups

通过将上述行添加到 ,可以在启动时自动完成此操作/etc/rc.local

相关内容