【发布时间】:2011-06-08 15:57:06
【问题描述】:
我最近开始使用 bash 进行编码,并且正在制作用于机架式计算机的诊断检查 CD,以便打印到 LCD 屏幕上。
到目前为止它可以工作,但我想要它做的是当它到达检查哪些以太网端口被拔出的部分时,它会在那里停留 30 分钟左右,重复检查,然后继续执行脚本。
IE:拔掉第一个以太网端口时,LCD 显示 LAN 1 DIS,插上它就消失了。拔下 1&2 后,它会在 LAN 1 DIS 和 LAN 2 DIS 之间交替显示,所以我希望它在指定的时间段内继续执行此操作,然后继续。
我查看了 cron,这似乎对在永久系统上制作计时器很有用,但我只想让 cd 启动,进行检查,然后弹出它,让真正的操作系统接管,我试过使用:
while [ `sleep 30m` ];
do
/mnt-system/KNOPPIX/lcdwriter.pl "";
BAD="";
for i in 0 1 2 3
do
#LAN number to ETH number mapping
case $i in
0)
j=1;
;;
1)
j=2;
;;
2)
j=4;
;;
3)
j=3;
;;
esac
STATUS=`/usr/sbin/ethtool eth$i | grep "Link detected: no"`;
if [ "x$STATUS" != "x" ]
then
BAD=$BAD$j;
echo "LAN $BAD Disconnected";
/mnt-system/KNOPPIX/lcdwriter.pl "LAN $BAD DIS";
sleep 5;
fi
done;
done;
【问题讨论】:
标签: bash networking timer automated-tests ethernet