Я недавно начал писать код в bash, и я делаю компакт-диск с диагностической проверкой для стоечных компьютеров для печати на ЖК-экране.
Пока все работает, но я хочу, чтобы это было когдаон попадает в ту часть, где он проверяет, какие порты Ethernet отключены, он остается там в течение 30 минут или около того, повторяя проверку, а затем переходит к сценарию.
IE: при отключении 1-го порта EthernetЖК-дисплей отображает LAN 1 DIS, подключите его, и он исчезнет.При отключении 1 и 2 он чередуется между произнесением LAN 1 DIS и LAN 2 DIS, поэтому я хочу, чтобы он продолжал делать это в течение определенного периода времени, а затем продолжил.
Я посмотрел cron, и это, кажется,полезно для создания таймеров на постоянных системах, но я просто хочу, чтобы компакт-диск загрузился, выполните проверку, а затем извлеките ее, и пусть реальная ОС вступит во владение, и я попытался использовать:
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;