Temat: skrypt ash: ping + informowanie ledami
Witam,
potrzebuję skonstruować skrypt który będzie LEDem informować o wyniku polecenia ping.
Np:
jeśli ping wraca: 1sek świeci, 2sek zgaszona
jeśli NIE wraca: 2sek świeci, 1 sek zgaszona.
Proste.
#!/bin/sh
echo "0" > /sys/class/leds/tl-mr3x20\:green\:qss/brightness
while sleep 0; do
if [ "`ping -c 1 -w 1 8.8.8.8|grep ", 0%`" != "" ]; then
echo "255" > /sys/class/leds/tl-mr3x20\:green\:qss/brightness
sleep 1
echo "0" > /sys/class/leds/tl-mr3x20\:green\:qss/brightness
sleep 2
fi
if [ "`ping -c 1 -w 1 8.8.8.8|grep ", 0%`" == "" ]; then
echo "255" > /sys/class/leds/tl-mr3x20\:green\:qss/brightness
sleep 2
echo "0" > /sys/class/leds/tl-mr3x20\:green\:qss/brightness
sleep 1
fi
done
Na prosty rozum działać powinno. Jednak działa tylko gdy pakiet się traci lub gdy nie.
Ale jest możliwa 3cia lub 4ta odpowiedź ping: bad adress lub Network unreachable.
I w tych wypadkach (3ci - pomińmy, jest podane ip a nie domena) mimo grepa
a i tak się wyświetla w linii poleceń niechciana, nieobsługiwana treść odpowiedzi polecenia ping.
(do testów wył/zał leda zastąpiłem wyprowadzaniem tekstu na ekran - echo "jest" / echo "nie ma")
Jak się tego pozbyć nieparsowanego komunikatu, tak aby to było obsługiwane poprawnie?
huawei K3565 (e160x)
extroot 4GiB - patriot extreme
usb active hub