centos 使用ups实现断电自动关机方案
市面上的 UPS 本身可以通过 USB 接口与 UPS 通讯,实现控制当市电断电时自动关机,当市电恢复时自动开机。
但是对 UPS 有要求,仅支持少数带通信接口的 UPS,而且市面上大多 UPS 机器只有一个 USB 接口,被 UPS 占用后就无法插 U 盘或移动硬盘了。如果没有通讯接口,一旦停电需用手动关机!!
以下为普通 UPS实现停电自动关机方案,且不占用设备USB端口。
一、登陆并配置定时任务
使用 root 权限登陆 SSH 命令控制界面,假设定时脚本是 ping.sh ,输入命令 crontab -e 配置定时任务。
在最后一行增加下面内容
*/1 * * * * /usr/bin/sudo sh /usr/local/src/ups/ping.sh #每分钟检测一次
二、创建 ping.sh 批处理脚本文件
#!/bin/sh
ping -c 1 192.168.1.1 > /dev/null
if [ $? -eq 0 ]; then
echo "Router is reachable"
else
#记录异常日志
current_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "$current_time 断电触发UPS保护,执行关机" >> /usr/local/src/ups/error.log
#执行关机 多执行几次sync 保证数据不丢失
sync && systemctl stop docker && sync && sync && sync && shutdown -h now
fi
三、赋予 ping.sh 批处理脚本文件权限
chmod 755 /usr/local/src/ups/ping.sh
四、重启服务开始执行任务
输入命令 reboot 重启设备,程序就开始执行了。
或 重启 Crontab 服务
/sbin/service crond restart
注意!!:
需要 PING 的路由器设备必须接市电,确保断电后无法链接 !!!
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 奇怪的阿峰
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果