Ups

用於 Synology NAS 的中繼器模式下的 NUT UPS-Dummy 驅動程序

  • April 29, 2020

我有一個 NUT 客戶端,它要求將其監控的 UPS 命名為ups. 客戶端(Synology NAS)不提供更改此配置的方法。我的設置包括由單個主機監控的多個 UPS,我寧願不命名 1/4的 UPS ups,而將其他 3/4 命名為具有描述性且對管理有幫助的名稱。

我想我應該能夠dummy-ups在中繼器模式下使用驅動程序來創建一個名為的虛擬 UPS ,該 UPSups跟踪名為其他名稱的真實 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 時,我在 syslog 中看到以下內容,其中 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 monuser@192.168.1.2 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

問題源於驅動程序之間的競爭條件,在完成初始化之前dummy-ups啟動和嘗試連接。usbhid-ups``usbhid-ups

正如NUT 使用者郵件列表中所解釋的那樣,在 2.7.2 之後的NUT 版本中maxretry,可以通過使用.retrydelay``ups.conf

對於沒有這些選項的 NUT 版本(例如,ubuntu 12.04 中的 2.6.3),可以通過以下方式手動啟動 UPS(以 root 身份)來解決該問題:

upsdrvctl start ups

這可以通過將上述行添加到/etc/rc.local.

引用自:https://serverfault.com/questions/655797