安恒网管员手记: linux与 UPS 安恒的解决方法
2004-07-21    刘世伟   
打印自: 安恒公司
地址: HTTP://dtx-clt.anheng.com.cn/news/article.php?articleid=370
linux与UPS 安恒的解决方法




[安恒原创] 转载请注明出处   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 &


设置开机时运行上面的这个服务,行了。
责任编辑: admin