Witam. uzywam skryptu online opisanego wczesniej juz od kilku miesięcy. Skrypt monitoruje mi stan ap-kow w sieci. Mam tych urzadzen ok. 30. Dopisalem sobie do tego skryptu jeszcze jedną rzecz. W przypadku stwierdzenia offline - skrypt wysyła maila na konto admin informując że nie dziala dany ap. A z kolei z konta admin generuje sobie sms-a i wysyła na telefon plusa. Dzięki temu w ciągu kilkunastu sekund dociera do mnie info, że coś się dzieje z jakimś urządzeniem. Wszystko byłoby ok, gdyby nie jeden problem. Czasami ten ping nie otrzyma odpowiedzi...bo coś tam.... zdarza się , że wskoczy dziura tak sobie... mimo to sprzęt faktycznie nadal działa.... jeśli jest w sieci 30 urządzeń - to takich przypadkowych braków może być czasem kilka, przez co w ciągu jednej nocy potrafie dostać kilka sms-ow o tym , że coś tam nie działa. Pytanie więc jest takie..... jak zrobić, rzeby ten skrypt generował offline - stwierdzając to na podstawie np. z 5 prób ping-a wszystkie błędne, rzeby nie wysyłał mi maila już przy pierwszej dzuirze... Jak to zrobić?? poproszę o pomoc
Wkleje jeszcze jak to teraz wygląda:
#!/bin/bash
# KONFIGURACJA
# U W A G A
#
# Jesli chcemy by wyniki byly widoczne jako IP zmieniamy linie:
#
# for i in `cat /etc/hosts| grep -v "^#"|grep [0123456789] |awk '{print $2}'`; do
#
# na
#
# for i in `cat /etc/hosts| grep -v "^#"|grep [0123456789] |awk '{print $1}'`; do
#
# Gdy chcemy nazwy hostow nie zmienialmy nic
#
# nazwa hosta 127.0.0.1 z pliku /etc/hosts sluzy do pomijania go w pliku wynikowym
nazwa_127='localhost.localdomain'
# ustawienie sciezki do pliku wynikowego (wymagany na koncu znak "/")
sciezka='/var/www/wireless/'
# ustawienie nazwy pliku wynikowego
nazwa='online.html'
# konfiguracja obrazkow
#----------------------------------------------
# wielkosc obrazka na stronce (obrazek powinien byc kwadratem)
obrazek=18
# nazwa obrazka online (moga byc rozniez linki np:
http://www.jakastam.pl/obrazek1.gif
online='online.gif'
# nazwa obrazka offline (moga byc rozniez linki np:
http://www.jakastam.pl/obrazek2.gif
offline='offline.gif'
#----------------------------------------------
# czestotliwosc odswierzania strony
odswierz=10
# czas wykonywania skryptu (na kazdego nieaktywnego uzytkownika skrypt "marnuje" 1s
# czyli zmienna nie moze byc mnijesza niz ilosc zliczanych uzytkownikow)M
sleep_delay=20
# ustalanie rodzaju fontow i ich wielkosci
#----------------------------------------------
# rodzaj fontu dla nazw hostow (np arial)
font_host='arial'
# wielkosc fontu dla nazw hostow (np 12)
size_host=12
# rodzaj fontu dla tytulu (np arial)
font_tytul="arial"
# wielkosc fontu dla tytulu (np 12)
size_tytul=14
# rodzaj fontu dla cyklu (np arial)
font_cykl="arial"
# wielkosc fontu dla cyklu (np 12)
size_cykl=12
#----------------------------------------------
# tekst tytulu (mozna stosowac tag <br> - podzial wiersza, <b>,<u> i <i>)
tytul_txt='<b><u>Tabela</u><br><i>hostow</i></b>'
# Indywidualne ustawienia naglowka tabeli
table='<table border=0>'
# KONIEC KONFIGURACJi
licznik_cykli=1
while :; do
online_tab[0]=0
online_nazw[0]=0
licznik=1
#----- Linia ktora trzeba zmienic w zaleznosci czy chcemy IP czy nazwy hostow--
for i in `cat /etc/hostso| grep -v "^#"|grep [0123456789] |awk '{print $1}'`; do
#-------------------------------------------------------------------------------
if [ $i != $nazwa_127 -a $i != "127.0.0.1" ]; then
temp=`ping $i -c1 -w1 | grep packets | awk '{print $4}'`
#echo $i' '$temp
online_tab[$licznik]=$temp
online_nazw[$licznik]=$i
licznik=$(expr $licznik + 1)
fi
done
licznik2=1
echo '<html><head><meta HTTP-EQUIV=Refresh CONTENT='$odswierz'><meta HTTP-EQUIV=Cache-Control content=no-cache><meta HTTP-EQUIV=Pragma CONTENT=no-cache><meta HTTP-EQUIV=Content-Type CONTENT=text/html; charset=iso-8859-2></head><body>' > $sciezka$nazwa
echo '<style>.cykl {font-family:'$font_cykl';font-size:'$size_cykl'px;text-align:center} .host {font-family:'$font_host';font-size:'$size_host'px;} .tyt {font-family:'$font_tytul';font-size:'$size_tytul'px;text-align:center}</style>' >> $sciezka$nazwa
echo $table >> $sciezka$nazwa
echo '<tr><td colspan=2><p class=tyt>'$tytul_txt'</p></td><tr>' >> $sciezka$nazwa
echo '<tr><td colspan=2><p class=cykl>Cykl '$licznik_cykli'</p></td><tr>' >> $sciezka$nazwa
while [ $licznik -gt $licznik2 ]; do
if [ ${online_tab[$licznik2]} -eq 1 ]; then
echo '<tr><td><p class=host><b>'${online_nazw[$licznik2]}'</b></p></td><td><img src="'$online'" width='$obrazek' height='$obrazek'></td></tr>' >> $sciezka$nazwa;
fi
if [ ${online_tab[$licznik2]} -eq 0 ]; then
echo '<tr><td><p class=host>'${online_nazw[$licznik2]}'</p></td><td><img src="'$offline'" width='$obrazek' height='$obrazek'></td></tr>' >> $sciezka$nazwa;
echo "Hmm" | mail -s ${online_nazw[$licznik2]} admin@localhost
fi
licznik2=$(expr $licznik2 + 1)
done
echo '</table>' >> $sciezka$nazwa
echo '</body></html>' >> $sciezka$nazwa
sleep $sleep_delay
licznik_cykli=$(expr $licznik_cykli + 1)
done
: exit 0
Pozdrawiam....Jacek