Linux (NUT 一键脚本配置)
瓦力方程为 Linux 用户提供了基于 NUT (Network UPS Tools) 的一键配置脚本 setup-nut.sh。NUT 是业界使用最广泛的开源 UPS 管理框架,支持上千种设备,并具备网络化监控与多机联动能力。下载脚本后单条命令即可完成全部配置。
📥 下载脚本
或在终端直接获取:
| |
简介
NUT (Network UPS Tools) 是业界使用最广泛的开源 UPS 管理框架,瓦力方程 W150 / W180 通过通用 usbhid-ups 驱动即可被 NUT 完整识别。
setup-nut.sh 会自动完成以下工作:
- 安装 NUT 软件包(兼容
apt/dnf/yum) - 生成
/etc/nut/下全部配置文件 - 创建断电倒计时关机的事件脚本
- 设置正确的文件权限与运行时目录
- 启用并启动 systemd 服务
- 自动验证 UPS 连接状态
适用系统
- Debian / Ubuntu / Armbian
- RHEL / CentOS / Rocky / AlmaLinux / Fedora
- 飞牛 FnOS 等基于上述发行版的衍生系统
需要具备
apt-get、dnf或yum任意一种包管理器,且能访问软件源。
安装步骤
1. 连接硬件
将 UPS 的 USB 信号线一端插入 UPS,另一端插入 Linux 主机。
2. SSH 登录并切换 root
| |
3. 下载脚本
直接从瓦力方程官网拉取最新版本:
| |
也可在本页顶部点击「下载 setup-nut.sh」按钮,再用
scp上传到主机。
4. 运行脚本
| |
脚本启动后会依次询问 4 个参数,直接回车即可使用默认值:
| 参数 | 默认值 | 说明 |
|---|---|---|
| UPS 名称 | ups | NUT 中标识本台 UPS 的名字,用于 upsc ups@localhost 等命令 |
| UPS 描述 | W150 | 写入配置文件的型号描述,建议改为实际型号(W150 / W180) |
| 监控用户密码 | mypassword | upsmon 登录 upsd 的密码,生产环境务必修改 |
| 断电关机延迟 (秒) | 30 | 进入电池模式后多久仍未恢复市电就执行关机 |
确认后输入 Y 开始安装。
脚本执行流程
脚本按 6 个阶段顺序运行,任一步失败会立即终止。
① 安装 NUT 软件包
按优先级探测包管理器并安装 nut nut-client nut-server。
② 生成配置文件
所有文件位于 /etc/nut/:
nut.conf——MODE=standalone,单机模式ups.conf—— 声明 UPS 设备,驱动usbhid-ups、端口autoupsd.conf——LISTEN 127.0.0.1 3493,仅监听本机回环upsd.users—— 创建upsmon监控账号(master 角色)upsmon.conf—— 设置事件通知与兜底关机命令upssched.conf—— 定义断电倒计时与来电取消逻辑
③ 创建事件处理脚本 /bin/upssched-cmd
倒计时到期时记录日志并执行 /sbin/shutdown -h now。
④ 设置权限
- 自动探测
nut/ups/root用户与用户组 - 配置文件归属
root:<nut组>,权限640(保护密码) - 创建并修正
/var/run/nut目录
⑤ 启用并启动服务
兼容不同发行版的 systemd 单元命名:
| 角色 | 优先单元 | 兼容单元 |
|---|---|---|
| UPS 驱动 | nut-driver@<UPS_NAME> | nut-driver / nut-driver.target |
| upsd 服务端 | nut-server | upsd |
| upsmon 监控 | nut-monitor | upsmon |
全部使用 systemctl enable --now 同时启动并设为开机自启。
⑥ 验证 UPS 连接
脚本会自动执行:
| |
输出包含 device.type 即视为连接成功,并打印关键字段(状态、负载、电量、电压)。
状态验证
安装完成后,可随时通过以下命令查看 UPS 实时状态:
| |
典型输出(节选):
| |
常用命令
| |
工作原理
| |
常见问题排查
upsc 报 Driver not connected
- 检查 USB 线是否插紧,使用
lsusb确认能看到 UPS 设备。 - 查看驱动状态:
systemctl status nut-driver@ups。
Access denied 或密码错误
- 检查
/etc/nut/upsmon.conf中的密码与/etc/nut/upsd.users是否一致。 - 手动修改任一文件时务必同步另一文件。
断电后没有自动关机
- 查看 syslog 是否出现
upssched-cmd记录。 - 确认
/bin/upssched-cmd存在并具有可执行权限。 - 确认
/var/run/nut目录归属正确,能正常创建 pipe / lock 文件。
想要远程监控其它机器
- 修改
/etc/nut/upsd.conf,新增LISTEN <内网 IP> 3493。 - 在
/etc/nut/upsd.users中追加slave用户。 - 远端主机以
slave角色配置upsmon.conf,并指向本机 IP。 - 重启
nut-server服务。
修改参数后如何重新生效
直接再次运行脚本即可,配置会被覆盖并自动重启服务:
| |
卸载方法
如需完全移除 NUT 配置:
| |
参数速查表
| 文件 | 作用 | 关键字段 |
|---|---|---|
/etc/nut/nut.conf | 运行模式 | MODE=standalone |
/etc/nut/ups.conf | UPS 硬件定义 | driver / port / desc |
/etc/nut/upsd.conf | 服务端监听 | LISTEN |
/etc/nut/upsd.users | 监控账号 | password / upsmon master |
/etc/nut/upsmon.conf | 客户端策略 | MONITOR / NOTIFYCMD / SHUTDOWNCMD |
/etc/nut/upssched.conf | 事件调度 | AT ONBATT / AT ONLINE |
/bin/upssched-cmd | 事件处理脚本 | shutdown-timer 分支 |