Tym razem tak na szybciutko.
Całe założenie zostało przedstawione w wątku: https://openlinksys.info/forum/viewth...d_id=22607
Dostosowałem tylko skrypty pod Tomato.
1. Musimy mieć zainstalowane Optware/Entware - mój przykład odnosi się do Optware.
2. Instalujemy pakiet arping na Tomato
[root@Tomato ]$ ipkg update
[root@Tomato ]$ ipkg install arping
Przyjąłem że skoro mamy zainstalowane Optware to każdy z nas ma katalog OPT podpięty pod jakiś zasób dyskowy i tam będę umieszczał skrypty.
Tworzymy skrypt sprawdzający połączenia:
#!/bin/ash
clear
R1="0*Cinek_Router_Server_OVPN"
R2="192.168.2.153*Cinek_MR_Server_MR"
R3="192.168.2.152*Cinek_MR_Client_MR_1"
R4="192.168.2.1*Marian_Rouer_Client_OVPN_1"
R5="192.168.2.2*Marian_MR_Client_MR_1_Marian"
R6="192.168.2.3*Marian_MR_Client_MR_2_Michal"
R7="192.168.2.10*Grzesiek_Router_Client_OVPN_2"
R8="192.168.2.11*Grzesiek_RR_Client_RR_1"
R9="0*Brak"
R10="0*Brak"
R11="0*Brak"
R12="0*Brak"
BR="br0"
for A in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
do
IP=`echo "$A" |awk -F"*" '{printf $1}'`
OPIS=`echo "$A" |awk -F"*" '{printf $2}'`
if [ "$IP" != 0 ] then
PING=`/opt/sbin/arping -I br1 "$IP" -c 5 -D |grep 100% |wc -l`
if [ "$PING" = 1 ] then
echo "---------------------------------------------------------------------"
echo `date`
echo "Brak_polaczenia ----- $OPIS ----- $IP"
fi
if [ "$PING" = 0 ] then
echo "---------------------------------------------------------------------"
echo `date`
echo "OK ----- $OPIS ----- $IP"
echo "---------------------------------------------------------------------"
fi
fi
done
exit 0
Nadajemy mu prawa do uruchomienia i testujemy połączenia.
Wynik i wnioski są identyczne jak dal EDGERouter: https://openlinksys.info/forum/viewth...d_id=22607
Teraz zrobimy sobie skrypt sprawdzający połączenia i wysyłający maila w razie jakiś problemów:
najpierw musimy zainstalować klienta smtp ja poszedłem po najmniejszej linii oporu i zainstalowałem sobie LOGWATCH z tutków
lub można to zrobić wzorując się na: https://openlinksys.info/forum/viewth...d_id=22604
#!/bin/ash
R1="0*Cinek_Router_Server_OVPN"
R2="192.168.2.153*Cinek_MR_Server_MR"
R3="192.168.2.152*Cinek_MR_Client_MR_1"
R4="192.168.2.1*Marian_Rouer_Client_OVPN_1"
R5="192.168.2.2*Marian_MR_Client_MR_2_Marian"
R6="192.168.2.3*Marian_MR_Client_MR_3_Michal"
R7="192.168.2.10*Grzesiek_Router-Client_OVPN_2"
R8="192.168.2.11*Grzesiek_MR_Client_MR_4"
R9="0*Brak"
R10="0*Brak"
R11="0*Brak"
R12="0*Brak"
LOK="/opt/mail.txt"
TEST="/opt/test"
BR=br1
PASS="hasło do poczty"
ADR="adres naszej poczty"
HOST_SMTP="adres naszego serwera smtp np dla o2 to poczta.o2.pl, dla interii poczta.interia.pl itd"
LINIA=28
echo "1" >> $TEST
DEL_LOG=`grep "1" < "$TEST" | wc -l`
if [ $DEL_LOG -ge 2 ] then
if [ -e "$LOK" ] then
rm "$LOK"
if [ -e "$TEST" ] then
rm "$TEST"
fi
fi
fi
for A in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
do
IP=`echo "$A" |/usr/bin/awk -F"*" '{printf $1}'`
OPIS=`echo "$A" |/usr/bin/awk -F"*" '{printf $2}'`
if [ "$IP" != 0 ] then
PING=`/opt/sbin/arping -I "$BR" "$IP" -c 5 -D |grep 100% |wc -l`
if [ "$PING" = 1 ] then
echo "-------------------------------------------------------------------------" >> "$LOK"
echo `date` >> "$LOK"
echo "Brak_polaczenia ----- $OPIS ----- $IP" >> "$LOK"
echo "-------------------------------------------------------------------------" >> "$LOK"
fi
if [ "$PING" = 0 ] then
echo "-------------------------------------------------------------------------" >> "$LOK"
echo `date` >> "$LOK"
echo "OK ----- $OPIS ----- $IP" >> "$LOK"
echo "-------------------------------------------------------------------------" >> "$LOK"
fi
fi
done
for B in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
do
IP=`echo "$B" |/usr/bin/awk -F"*" '{printf $1}'`
OPIS=`echo "$B" |/usr/bin/awk -F"*" '{printf $2}'`
if [ "$IP" != 0 ] then
MAIL=`grep "Brak_polaczenia" < "$LOK" | grep $OPIS | wc -l`
if [ $MAIL -ge 2 ] then
tail -n "$LINIA" /opt/mail.txt > /opt/mail1.txt
/opt/bin/smtp-cli --host="$HOST_SMTP" --port=587 -4 --hello-host=EDGERouter --disable-starttls --disable-ssl --auth-login --missing-modules-ok --user="$ADR" --pass="$PASS" --from="$ADR" --to="$ADR" --subject="MultiRoom Zawieszony" --body-plain="/opt/mail1.txt"
if [ -e "$LOK" ] then
rm "$LOK"
fi
break
fi
fi
done
exit 0
Nadajemy mu prawa do uruchomienia.
Teraz tylko umieszczamy go w harmonogramie co 15 min i co 1,5h jeśli coś jest nie tak dostajemy maila.
===============================================================
Netgear WNR3500L v1
Podziękowania dla administracji Openlinksys.info!
|