Zdroj: http://www.trzepak.pl/viewtopic.php?t=9685&highlight=beep
#!/bin/bash
dzien=$(date +%d);
miesiac=$(date +%b);
godzina=$(date +%k);
minuta=$(date +%M);
sekunda=$(date +%S);
#w tablicy wpisujemy testowane adresy IP - musza byc osiagalne z serwera
tablica=(
10.0.0.1
10.0.0.2
);
x=1;
while [ $x -le ${#tablica[@]} ]; do
y=$[x-1]
# Parametr -s okresla wielkosc PINGu
command=$(ping -c 4 -s 512 -i 1 ${tablica[$y]});
val1=$(echo "$command" | grep "4 received");
val2=$(echo "$command" | grep "25% packet loss");
val3=$(echo "$command" | grep "50% packet loss");
val4=$(echo "$command" | grep "100% packet loss");
val5=$(echo "$command" | grep "75% packet loss");
if [ -n "$val1" ]; then
echo "Punkt dostepowy o adresie ${tablica[$y]} dziala bez zarzutu"
fi
if [ -n "$val2" ]; then
echo "Punkt dostepowy o adresie ${tablica[$y]} pominał 1 pakiet! - Dzien $dzien Godzina $godzina:$minuta:$sekunda" >> /var/log/response
#programik BEEP generuje dzwieki na standardowym PC Speakerze
beep -f 1000 -r 1 -D 100 -l 500
fi
if [ -n "$val3" ]; then
echo "Punkt dostepowy o adresie ${tablica[$y]} pominał 2 pakiety! - Dzien $dzien Godzina $godzina:$minuta:$sekunda" >> /var/log/response
beep -f 1000 -r 2 -D 100 -l 500
fi
if [ -n "$val5" ]; then
echo "Punkt dostepowy o adresie ${tablica[$y]} pominał 3 pakiety! -
#logowanie kazdego wypadnienia :
Dzien $dzien Godzina $godzina:$minuta:$sekunda" >> /var/log/response
beep -f 1000 -r 3 -D 100 -l 500
fi
if [ -n "$val4" ]; then
echo "Punkt dostepowy o adresie ${tablica[$y]} nie działa !!! - Dzien $dzien Godzina $godzina:$minuta:$sekunda" >> /var/log/response
#wlaczenie alarmu
beep -f 3000 -r 10 -D 100 -l 500
alarm="$alarm ${tablica[$y]}"
wlaczenie=1;
echo "Nie działa punkt dostepowy o adresie ${tablica[$y]}"
fi
x=$[x+1]
done
echo "-------------------[ KONIEC TESTU ]-----------------------";
if [ $wlaczenie ]; then
if [ -e /tmp/alarm ]; then
echo "Juz zostalo zgloszone poprzez eMail"
else
touch /tmp/alarm
echo "Wysylam mejla z :"
#wymagany jest programik SendMail napisany w Perlu do wysylania mejli :
/bin/sendEmail -f adres_@_majl_od_kogo -t adres_@_emajl_docelow -u Awaria -m $alarm nie dziala -s 193.17.41.99:25 -xu login -xp haslo
echo "$alarm"
echo "Wysylam wiadomosc na GG $alarm"
#ekg pozwala wysylac wiadomosci na GG. Trzeba go zkonfigurowac na koncie ROOT'a
ekg query 4632413 Sprzet o adresie ${tablica[$y]} nie działa !!! Godzina $godzina:$minuta:$sekunda
fi
else
if [ -e /tmp/alarm ]; then
echo "Awaria zostala usunieta"
ekg query 4632413 Ostatnia awaria zostala usunieta ! - Godzina $godzina:$minuta:$sekunda
/bin/sendEmail -f adres_@_majl_od_kogo -t adres_@_emajl_docelow -u Awaria usunieta -m Ostatnia awaria zostala usunieta ! -s 193.17.41.99:25 -xu login -xp haslo
fi
rm /tmp/alarm
echo "Nie ma problemow z zadnym APkiem"
fi