Chinaunix首页 | 论坛 | 博客
  • 博客访问: 555316
  • 博文数量: 114
  • 博客积分: 5611
  • 博客等级: 大校
  • 技术积分: 1027
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-19 08:55
文章分类

全部博文(114)

文章存档

2011年(29)

2010年(20)

2009年(1)

2008年(11)

2007年(53)

分类: LINUX

2007-08-31 17:38:03

vi /usr/sbin/ah_ups
 
 
#!/bin/bash
while  [ -z "`mii-tool eth1 |grep 'link ok'`" ]
do
sleep 10
done
echo ups ok!
until   [ -z "`mii-tool eth1 |grep 'link ok'`" ]
do
until   [ -z "`mii-tool eth1 |grep 'link ok'`" ]
do
sleep 40
done
 
sleep 40
done
 
poweroff
 
vi /etc/init.d/ups
 
#!/bin/bash
nohup /usr/sbin/ah_ups &
 
注释:
while 是条件成立执行循环,until是条件成立退出循环
这里的条件  -z  是取反的意思,这里的监测条件都是eth1网卡 失去连接
 
同时第一段的while 循环非常有必要, 就是网卡先要 link ok,才能继续监测下面的监测, 然后才是失去link 自动关机。
不然没有第一段的while判断 , 如果网卡坏了 ,一开机就自动关机了,估计是比较麻烦的!
 
但是这也要注意,如果刚开机的时候eth1是失去link的,这个时候电脑是不会自动关机的,因为while的循环是没有link 继续sleep 10
 
在一开始eth1有信号的情况下,如果网卡eht1突然丢失了连接信号后,关机的监测时间是 40<(0-40)+40<80  <这里是小于等于的意思!
 
阅读(1196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~