群晖-虚拟机ups不断电系统
群晖-虚拟机ups不断电系统前言群晖ups虚拟机ups效果前言目的: 在只有一个ups通信端口的情况下,实现多个设备在断电后都能够接收到关机命令。原理: ups通信端口接入群晖,让群晖成为ups服务器然后其他设备通过网络接入。群晖ups此部分很简单,将ups通信端口的usb接入群晖系统的usb端口即可。然后在控制面板硬件和电源开启ups支持即可在最后要启用网络ups服务器,让其他设备能够通过网络接
·
后面的都不用看,直接看前面的链接(别人写的更好)
群晖-虚拟机ups不断电系统
前言
目的: 在只有一个ups通信端口的情况下,实现多个设备在断电后都能够接收到关机命令。
原理: ups通信端口接入群晖,让群晖成为ups服务器然后其他设备通过网络接入。
群晖ups
此部分很简单,将ups通信端口的usb接入群晖系统的usb端口即可。
然后在控制面板硬件和电源开启ups支持即可
在最后要启用网络ups服务器,让其他设备能够通过网络接入。
虚拟机ups
首先需要ssh登录虚拟机的后台
然后
- 下载NUT套件
apt install nut -y - 编辑NUT配置文件
vim /etc/nut/nut.conf (可以使用winscp连接上,在windows环境下面更换) - 将“MODE=”后面修改成如下参数
MODE=netclient(然后输入“:wq”保存退出) - 更改连接配置
vim /etc/nut/upsmon.conf - 找到 MONITOR 在下方增加一行
MONITOR ups@nas的ip 1 upsmon pass slave(将nas的ip换成你nas的ip,其他参数都不要更改,原因参考博文1!,请注意此句MONITOR 前面没有#号,#代表注释!)
原因图片
原因结束
- 启动nut-client服务,并设置自动启动
systemctl start nut-client && systemctl enable nut-client - 测试是否成功连接UPS服务器
upsc ups@NAS IP
如果有输出信息,那么就成功
效果
- 在断电后,首先会群晖收到通知,然后群晖立马会通知虚拟机等其他设备关机,实现同时开始
关机安全模式。
要实现关机通过ssh连接群晖
sudo vim /usr/syno/bin/synoups
如果pve不关机,修改配置如下
/etc/nut/upsmon.conf
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h"
NOTIFYCMD /usr/sbin/upssched
POLLFREQ 2
POLLFREQALERT 1
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONLINE "UPS %s on line power"
NOTIFYMSG ONBATT "UPS %s on battery"
NOTIFYMSG LOWBATT "UPS %s battery is low"
NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
NOTIFYMSG COMMOK "Communications with UPS %s established"
NOTIFYMSG COMMBAD "Communications with UPS %s lost"
NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced"
NOTIFYMSG NOCOMM "UPS %s is unavailable"
NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL
NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 600
FINALDELAY 5
/etc/nut/nut.conf
MODE=netclient
/etc/nut/upssched.conf
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /etc/nut/upssched.pipe
LOCKFN /etc/nut/upssched.lock
AT ONBATT * START-TIMER onbatt 30
AT ONLINE * CANCEL-TIMER onbatt online
AT ONBATT * START-TIMER earlyshutdown 30
AT LOWBATT * EXECUTE onbatt
AT COMMBAD * START-TIMER commbad 30
AT COMMOK * CANCEL-TIMER commbad commok
AT NOCOMM * EXECUTE commbad
AT SHUTDOWN * EXECUTE powerdown
AT SHUTDOWN * EXECUTE powerdown
/etc/nut/upssched-cmd
#!/bin/sh
case $1 in
onbatt)
logger -t upssched-cmd "UPS running on battery"
;;
earlyshutdown)
logger -t upssched-cmd "UPS on battery too long, early shutdown"
/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
chmod +x /etc/nut/upssched-cmd
systemctl restart nut-client
上述来源链接
更多推荐
所有评论(0)