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 <这里是小于等于的意思!
阅读(1199) | 评论(0) | 转发(0) |