排行榜
原创运维中心

本地服务器接ups,实现断电优雅关机,来电自启

本文阅读 2 分钟
首页 运维中心 正文
广告

本地拓扑图:

image.png

先讲思路:


ups接市电,当市电断电后,ups将会发送信号给所有接入的监控服务器(192.168.110.154),监控服务器接收到市电断电信号后,进行后续的操作:通知vmware esxi(192.168.110.152)服务器优雅关机。

这里的监控服务器并不是vmware服务器,是vmware服务器里的虚拟机,我也研究过使用vmware来做监控机,但是vmware7.0把很多功能和权限都阉割掉了,走不通,所以只能把连接ups的usb信号透传给虚拟机,使用centos的虚拟机来做监控机了。



这个帖子并没有一步一步详细指导安装,只贴了各种配置内容:

下面贴监控机(192.168.110.154)的配置


vim /etc/ups/upsmon.conf

SHUTDOWNCMD "/sbin/true"
NOTIFYCMD /usr/local/bin/ups_timer.sh
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
# 在文件最后一行添加
MONITOR santak_ups@localhost 1 admin mypassword primary


vim /etc/ups/upssched.conf

#调用ups_timer.sh脚本
CMDSCRIPT /usr/local/bin/ups_timer.sh
PIPEFN /run/nut/upssched.pipe
LOCKFN /run/nut/upssched.lock
# 只有两个逻辑:断电开启 300秒计时;恢复则取消
AT ONBATT * START-TIMER shutdown-now 300
AT ONLINE * CANCEL-TIMER shutdown-now


vi /usr/local/bin/ups_timer.sh

ups_timer.txt

(下载文件后,须命名为ups_timer.sh)


#还需要设置脚本可执行:

chmod +x /usr/local/bin/ups_timer.sh



vi /etc/rc.d/rc.local

# 设置开机启动,没有使用systemctl服务,测试systemctl服务里有问题,就使用了的rc.local的自动启动

mkdir -p /run/nut/upssched
chown -R nut:nut /run/nut/upssched
mkdir -p /run/nut
chown nut:nut /run/nut
chmod 700 /run/nut
mkdir -p /run/ups
chown nut:nut /run/ups
chmod 770 /run/ups
# 2. 彻底清理可能残留的进程(防止你看到的 Fatal error)
/usr/sbin/upsmon -c stop >/dev/null 2>&1
/usr/sbin/upsd -c stop >/dev/null 2>&1
/usr/sbin/upsdrvctl stop >/dev/null 2>&1
# 3. 启动驱动
/usr/sbin/upsdrvctl start
sleep 5
# 4. 权限修正(这是你能看到 OL 的关键)
chown nut:nut /run/nut/nutdrv_qx-santak_ups
chmod 666 /run/nut/nutdrv_qx-santak_ups
# 5. 启动服务端 (upsd) - 绕过 systemctl
/usr/sbin/upsd -u nut
# 6. 启动监控端 (upsmon) - 绕过 systemctl
/usr/sbin/upsmon


再贴一些信息:

centos upsmon版本:

Network UPS Tools upsmon 2.8.0


查看ups当前状态:

upsc santak_ups@localhost ups.status

输出结果OL或者OB


模拟断电事件:

UPSNAME=santak_ups NOTIFYTYPE=ONBATT /usr/local/bin/ups_timer.sh "UPS santak_ups@localhost on battery"


查看输出日志:

tail -f /var/log/ups_shutdown.log


原创文章,作者:大洋哥,如若转载,请注明出处:https://www.unfit.cn/archives/207.html
Certbot实现自动签发及续签Let's Encrypt免费SSL证书
« 上一篇 01-20
广告