#!/bin/bash
#skrypt do sprawdzania działania AP
#made by MarasK - marask@gmail.com
#z niewiadomych przyczyn trzeba wysyłać podwójnie sms'a
############ konfiguracja ##################
mail="plu96@orange.pl"
ip_sprawdzane="192.168.0.12"
plik="pingowanie_ap_ostatni_stan"
temat_niedziala="NIE DZIALA $host"
temat_dziala="JUŻ DZIALA $host"
tresc="................................................................................................................................................................"
#tre¶c ma 160 . żeby pusty sms przychodził
############# koniec konfiguracji ###################
#zmienna ostatni_stan => 1-dziala 0-niedziala
ostatni_stan=`cat $plik`
#sprawdzanie pinga z ip i grepowanie packet loss
ping=`ping $ip_sprawdzane -c 4 | grep "Destination Host Unreachable" | wc -l`
#data w formacie 18:52 - wiecej info - date --help
data=`date +"%k:%M"`
host=`echo $ip_sprawdzane | cut -d "." -f 4`
#jeżeli packet loss >= 75 i ostatnio działało
if [ "$ping" -ge "3" -a "$ostatni_stan" = "1" ]; then
echo "AP $ip_sprawdzane NIE DZIAŁA $data" >> pingowanie_ap.log
echo "AP $ip_sprawdzane NIE DZIAŁA $data $tresc" | /opt/CommuniGate/mail -s "$temat_niedziala" "$mail"
echo "AP $ip_sprawdzane NIE DZIAŁA $data $tresc" | /opt/CommuniGate/mail -s "$temat_niedziala" "$mail"
echo "0" > $plik
fi
#jeżeli ping już działa, a ostatnio nie działało
if [ "$ping" -lt "3" -a "$ostatni_stan" = "0" ]; then
echo "AP $ip_sprawdzane JUŻ DZIAŁA $data" >> pingowanie_ap.log
echo "AP $ip_sprawdzane JUŻ DZIAŁA $data $tresc" | /opt/CommuniGate/mail -s "$temat_dziala" "$mail"
echo "AP $ip_sprawdzane JUŻ DZIAŁA $data $tresc" | /opt/CommuniGate/mail -s "$temat_dziala" "$mail"
echo "1" > $plik
fi
wystarczy dołożyć uruchamianie w cronie i powinno śmigać. W praktyce potrzebne jest 2x wysłanie maila, bo inaczej CommuniGate nie wysyłał.
Z niewiadomych przyczyn skrypt na początku działał - potem przestał. Może ktoś wpadnie dlaczego.