最近,发现好多人需要停电后,服务器UPS在电量耗尽前,如果能够自动关机,能够弥补网管不在现场的遗憾。
在linux停电关机程序,本人网上搜索了一下,有好多人发帖需要。
本人结合实际情况修改一下,配合说明。但愿大家能够利用上。
停电关机的作用条件就是:
市电停电,由于UPS均有一定的时间限制,这样,如果忘记了,或者网管不在场,系统能够察觉市电异常,从而实现自动关机。
原理:系统每个三分钟检测一个IP地址,比如路由器,交换机,如果这个地址,检测ping不通的情况下,系统会自动调用关机命令。
路由器和交换机不能外接UPS,否则起不到作用。
下面看程序代码:
#!/bin/sh ; 这是一个shell脚本
while true ;循环,实际上是一个死循环
do
ping -w 5 -c 1 192.168.1.1 > /dev/null ;和路由器通信检测,路由器或者交换机都可,但是上面不能接UPS,修改为你自己的实际地址
ret=$?
if [ $ret -eq 0 ] ;判断是否成功,
then sleep 180 ; 成功则睡眠3分钟,也就是说实现了三分钟检测一次
else
shutdown -h now ;关机命令
fi
done
以上程序代码结束!
使用vi 编辑器,将以上代码输入,注意后面的说明文字不要复制。保存为一个文件,如tdgj,利用 chmod 777 文件名,使之具有执行权。
在 rc.local末尾加上一行,即可开机自动运行。
比如: ./tdgj &
&字符表示后台运行。



日志分类