[安恒原创] 转载请注明出处 http://www.anheng.com.cn/news/15/370.html
网上介绍的linux与ups的连接都不太实用,我在刚接触linux时,那是在4年前,独创一种简单有效的办法,就是根据网线的状态来判断是否需要关机。
原理:在掉电时,一般交换机不会被ups供电,此时网卡的状态就有link变成了unlink,如果几秒种之内没有恢复到link状态,就可以断定,市电已断。此时可以启动shutdown进程了。
这个shutdown放在哪里呢?有个很方便的地方,就是网卡的那些script,找到网卡down时调用的script,放在最后就行了。
在debian下,没有找到那些网卡的script,只好写了一个循环的一直运行的脚本,
检查一次网卡状态后就睡30秒,脚本如下:
/usr/sbin/ah_ups:
#!/bin/bash while [ -z "`mii-tool |grep 'link ok'`" ] do sleep 10 done echo link ok! until [ -z "`mii-tool |grep 'link ok'`" ] do sleep 30 until [ -z "`mii-tool |grep 'link ok'`" ] do sleep 30 #cd /usr/local/softether #nohup ./se_hub & #ping -c1 -I 61.156.20.87 61.156.20.254 -c 1 done done poweroff在/etc/init.d/做一个服务调用:
/etc/init.d/ups:
#!/bin/bash
#循环监测网卡状态,提供ups关机功能
# 99-99
nohup /usr/sbin/ah_ups &
设置开机时运行上面的这个服务,行了。