返回列表 发布新帖

[用户教程] 使用绿联NAS作为NUT服务器,实现断电后在局域网其他设备能够正常关机

99 0
发表于 昨天 16:11 | 查看全部 阅读模式 IP:–四川–乐山

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 KIBeDE 于 2026-6-28 16:15 编辑

一、前因:
因为最近购入了一台工控机想要实现断电后由UPS撑一段时间,然后安全关机。
由于唯一一个UPS通信口插在了绿联NAS上,因此使用绿联自带的NUT服务实现,PVE主机和绿联NAS都插在UPS上。

二、设备列表
  • UPS:任意支持识别的UPS,我这里是硕天的UT659EGC
  • 绿联NAS:作为NUT服务端(Master),通过USB连接UPS,对外提供UPS状态信息
  • PVE主机:作为NUT客户端(Slave),接收NAS的UPS信号,当市电中断且超过设定延迟后自动安全关机


三、需要满足的条件:
  • 1、绿联NAS需要连接UPS并启用NUT Server
  • 2、其他主机需要和NAS一个局域网内,并在BIOS中开启来电自启
  • 3、PVE或其他Linux系统需要安装提前安装好nut包


四、安装NUT包:
  • 1、使用任意SSH连接工具连接至你的PVE主机
  • 2、先在控制台输入以下内容更新软件:
    1. apt update
    复制代码

  • 3、在输入以下内容安装nut包:
    1. apt install nut
    复制代码

  • 4、安装完成nut


五、在PVE端进行配置:
  • 1、使用SSH连接到PVE(我这里使用FinalShell)

1.png
  • 2、打开/etc/nut/nut.conf文件(默认安装完打开全部为英文,直接删除里面全部内容,复制以下内容进去)
  1. # ========== 基本设置 ==========
  2. RUN_AS_USER root

  3. # ========== 监控目标(UPS名称、IP、用户名、密码、角色) ==========
  4. MONITOR [email protected] 1 nut nut secondary #把@后面的IP地址改成你绿联NAS的内网IP地址

  5. # ========== 触发条件 ==========
  6. MINSUPPLIES 1

  7. # ========== 关机命令(作为最终回退,但 upssched 会接管) ==========
  8. SHUTDOWNCMD "/sbin/shutdown -h +0"
  9. #SHUTDOWNCMD "/usr/bin/logger 'UPS shutdown triggered'"#测试使用

  10. # ========== 启用 upssched 作为通知处理器 ==========
  11. NOTIFYCMD /usr/sbin/upssched

  12. # ========== 通知事件标志(告诉 upsmon 哪些事件需要执行 NOTIFYCMD) ==========
  13. NOTIFYFLAG ONBATT   SYSLOG+WALL+EXEC
  14. NOTIFYFLAG ONLINE   SYSLOG+WALL+EXEC
  15. NOTIFYFLAG LOWBATT  SYSLOG+WALL+EXEC

  16. # ========== 其他常规参数 ==========
  17. POLLFREQ 5
  18. POLLFREQALERT 5
  19. HOSTSYNC 15
  20. DEADTIME 15
  21. POWERDOWNFLAG /etc/killpower

  22. # ========== 最终延迟(留给 upssched 处理,这里设小一点) ==========
  23. FINALDELAY 5
复制代码
  • 3、配置定时任务,打开/etc/nut/upssched.conf(默认安装完打开全部为英文,直接删除里面全部内容,复制以下内容进去)
  1. # 执行脚本路径
  2. CMDSCRIPT /usr/bin/upssched-cmd

  3. # 管道和锁文件(确保 /run/nut 目录存在且权限正确)
  4. PIPEFN /run/nut/upssched.pipe
  5. LOCKFN /run/nut/upssched.lock

  6. # 定义计时器规则
  7. # 当 UPS 切换到电池时,启动一个名为 "shutdown-timer" 的计时器,延迟 240 秒后触发
  8. AT ONBATT * START-TIMER shutdown-timer 240

  9. # 如果电力恢复,取消该计时器
  10. AT ONLINE * CANCEL-TIMER shutdown-timer

  11. # 如果低电量(电池即将耗尽),立即执行关机,不等待
  12. AT LOWBATT * EXECUTE shutdown-timer
复制代码
  • 4、创建关机执行脚本,打开/bin/upssched-cmd(默认安装完打开全部为英文,直接删除里面全部内容,复制以下内容进去)
  1. #!/bin/sh

  2. case "$1" in
  3.     shutdown-timer)
  4.         logger -t upssched-cmd "UPS on battery for too long, shutting down PVE now."
  5.         /sbin/shutdown -h +0 "PVE: UPS battery critical, shutting down."
  6.         ;;
  7.     *)
  8.         logger -t upssched-cmd "Received unknown event: $1"
  9.         exit 1
  10.         ;;
  11. esac
复制代码
  • 5、依次在控制台输入以下命令赋予执行权限(以防万一)
  1. chmod +x /usr/bin/upssched-cmd

  2. mkdir -p /run/nut

  3. chown root:nut /run/nut 2>/dev/null || chown root:root /run/nut

  4. chmod 775 /run/nut
复制代码
  • 6、启动服务并设置开机自启(依次执行以下命令)
  1. systemctl enable nut-monitor
  2. systemctl start nut-monitor
复制代码
  • 5、然后你可以拔掉UPS的电源,看看控制台会不会弹出:
  1. Broadcast message from root@pve (somewhere) (Sun Jun 28 15:54:12 2026):        
  2.                                                                               
  3. UPS [email protected] on battery
复制代码
  • 6、在插上UPS电源又会弹出:
  1. Broadcast message from root@pve (somewhere) (Sun Jun 28 15:54:22 2026):        
  2.                                                                               
  3. UPS [email protected] on line power
复制代码
最后,恭喜你,按照这个步骤一般都能成功,现在已经可以实现断电后其他设备自动安全关机了
(建议还是真实断电模拟一下,请确保NAS和PVE主机在nut服务操作下都正常关机后(也就是直接拔下UPS电源正常走流程自动关机,看看PVE主机是否能自动关机)。要在UPS指示灯也熄灭的情况下(我这台UPS是这样)在插入UPS电源,一般就会自动开机了。)。












评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表