LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2649|回复: 10

如何使用脚本实现──发现使用UPS 供电,就关机呢?

[复制链接]
发表于 2004-6-21 11:36:32 | 显示全部楼层 |阅读模式
在水区看到可以用脚本实现如题功能,
哪位高手给解释一下如和实现,
比如检测发现启动了ups供电后3分钟关机。
:thank
发表于 2004-6-21 11:58:26 | 显示全部楼层
/etc/inittab里有对用ups控制的方法,看看管不管用 ;)
发表于 2004-6-22 00:31:01 | 显示全部楼层
我的实现方法是,通过网络检测,因为普通的ups根本无法检测其状态。
我们办公室通过一个路由器上网,将路由器接在外电上,电脑接在ups上。定时让电脑ping 路由器,若ping不通则表明断电,便可启动自动关机程序。

#!/bin/sh
upsstatus=true
while true
do
  ping -c 1 192.168.0.1 >/dev/null
  if [ $? = 0 ];then
        if [ $upsstatus = false ];then
                /sbin/shutdown -c
                upsstatus=true
        fi
  else
        /sbin/shutdown -h 8
        upsstatus=false
  fi
  sleep 240
done
发表于 2004-6-22 10:54:14 | 显示全部楼层

回复: 如何使用脚本实现──发现使用UPS 供电,就关机呢?

最初由 aaccdd 发表
在水区看到可以用脚本实现如题功能,
哪位高手给解释一下如和实现,
比如检测发现启动了ups供电后3分钟关机。
:thank

看了看/etc/inittab文件,修改一下下面的语句:
pf::powerfail:/sbin/shutdown -f -h +3 "ower Failure; System Shutting Down"
表示当收到ups电源故障时,系统显示信息后,3分钟后关机
身边没有ups,没法测试 ;)
 楼主| 发表于 2004-6-23 00:31:15 | 显示全部楼层
唉,可惜我的ups没有信号线,
用/etc/inittab实现不了~~~
 楼主| 发表于 2004-6-23 15:58:51 | 显示全部楼层
#!/bin/sh
upsstatus=true
while true
do
ping -c 1 192.168.0.1 >/dev/null
if [ $? = 0 ];then
if [ $upsstatus = false ];then
/sbin/shutdown -c
upsstatus=true
fi
else
/sbin/shutdown -h 8
upsstatus=false
fi
sleep 240
done

试了一下,
不行哦。
 楼主| 发表于 2004-6-23 16:24:04 | 显示全部楼层
为什么无论能否ping通,
结果都是“0”
源码:
ping -c1 192.168.1.1>/dev/null|echo $?
发表于 2004-6-23 18:25:30 | 显示全部楼层
ping -c1 192.168.1.1>/dev/null;echo $?
 楼主| 发表于 2004-6-23 22:59:49 | 显示全部楼层
可以了,
需要好好学习啊!~
另外,我发现Kanker兄的脚本在upsstatus赋值false
就退出循环,
如果就是短暂停电,30秒、1分钟,
也不能自动取消shutdown了,
该怎么样实现呢?
能否这样呢?
别笑哦,
不懂脚本~~
#!/bin/sh
upsstatus=false
while false
do
upsstatus=true
while true
do
ping -c 1 192.168.0.1 >/dev/null
if [ $? = 0 ];then
if [ $upsstatus = false ];then
/sbin/shutdown -c
upsstatus=true
fi
else
/sbin/shutdown -h 8
upsstatus=false
fi
sleep 240
done
done
发表于 2004-6-24 09:35:30 | 显示全部楼层
最初由 aaccdd 发表
可以了,
需要好好学习啊!~
另外,我发现Kanker兄的脚本在upsstatus赋值false
就退出循环,
如果就是短暂停电,30秒、1分钟,
也不能自动取消shutdown了,
该怎么样实现呢?
能否这样呢?
别笑哦,
不懂脚本~~


短暂停电没问题啊,shutdown -h 8意思是ups供电8分钟后关机,脚本循环检测时间是4分钟,若短暂停电最多4分钟后就取消了。你可以自己设置sleep和shutdown的值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表