之前文章提到杜老师买了 UPS,该设备支持低电压通知,直接对接到群晖上,而服务器没有办法获取电池信息。恰好看到 obaby 的解决方案,这里整理一下,供有需要的小伙伴参考!
群晖设置 首先将群晖设置为 UPS 服务器,当 UPS 的状态信息通过 USB 传输到群晖后,群晖可以通过网络将信息告知接收端。进入控制面板,进入到硬件和电源,勾选“启动网络 UPS 服务器”,进入“允许的 Synology NAS 设备”,在 IP 地址处输入接收端的 IP 即可「确定后别忘了点右下方处的应用」
工具配置 然后在接收端安装接收工具,命令如下:
修改配置文件,路径为etc/nut/nut.conf
,将模式改为客户端,参数如下:
修改服务指向配置文件,路径为/etc/nut/upsmon.conf
,修改以下参数「83 行左右」
1 MONITOR ups@192.168.31.87 1 monuser secret slave
重启接收工具服务:
1 systemctl restart nut-client
将接收服务设置为开机启动:
1 systemctl enable nut-client
线路测试 如果不想通过拔电源来测试上面设置是否生效,可以用 upsc ups@192.168.31.87
命令测试,出现如下信息代表配置成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Init SSL without certificate database battery.charge : 100 battery.voltage : 13.50 battery.voltage .high : 13.00 battery.voltage .low : 10.40 battery.voltage .nominal : 12.0 device.type : ups driver.name : blazer_usb driver.parameter .pollinterval : 5 driver.parameter .port : auto driver.parameter .synchronous : no driver.version : DSM7-1 -1 -42930 -workplus-version2-repack-42930 -220712 driver.version .internal : 0.12 input .current .nominal : 4.0 input .frequency : 50.0 input .frequency .nominal : 50 input .voltage : 230.8 input .voltage .fault : 230.8 input .voltage .nominal : 220 output.voltage : 230.8 ups.beeper .status : enabled ups.delay .shutdown : 30 ups.delay .start : 180 ups.load : 0 ups.productid : 5161 ups.status : OL ups.type : offline / line interactive ups.vendorid : 0665
关机脚本 服务会在 UPS 发送低电压时通知服务器关机,触发时机默认为 UPS 电量剩余约 20%。当然可自定义关机逻辑。如果要自定义关机设置需要进行如下设置,使用如下命令修改配置文件:
1 vim /etc/nut/upsmon.conf
添加如下内容:
1 2 NOTIFYCMD /sbin/u pssched NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
然后用命令 vim /etc/nut/upssched.conf
修改配置文件,添加如下内容:
1 2 3 4 5 6 CMDSCRIPT /etc/ nut/upssched-cmd PIPEFN /etc/ nut/upssched.pipe LOCKFN /etc/ nut/upssched.lock AT ONBATT * START-TIMER power -off 60 AT ONLINE * CANCEL-TIMER power -off AT ONLINE * EXECUTE power -on
接着用命令 vim /etc/nut/upssched-cmd
修改配置文件,添加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/bin/sh case $1 in onbatt) logger -t upssched-cmd "UPS running on battery" /usr/sbin/upsmon -c fsd ;; power-off) logger -t upssched-cmd "UPS running on battery power off" /usr/sbin/upsmon -c fsd ;; shutdowncritical) logger -t upssched-cmd "UPS on battery critical, forced shutdown" /usr/sbin/upsmon -c fsd ;; upsgone) logger -t upssched-cmd "UPS has been gone too long, can't reach" ;; *) logger -t upssched-cmd "Unrecognized command: $1 " ;; esac
条评论