1 (edytowany przez mylfu 2019-10-06 13:56:12)

Temat: [skrypt] sieci uniwersyteckie

Witam,
z racji tego że rok akademicki się rozpoczął a jak nauczyłem się kompilować po openwrt postanowiłem napisać skrypt rozwiązujące następujące problemy 
* jeśli jakiś cymbał włoży kabel od sieci akademickiej zamiast do wan
* sprawdza czy screen jest otwarty jeśli nie otwiera (przydatne w nocy kiedy sobie smacznie śpisz a tu sesja się zamknie i nie masz neta )
* jeśli internetu nie ma +- 15 minut restartuje router

ERROR=0
PASSWORD=tajnehaslo #input your student password
WAN=eth1.2 #input your wan port
PASSWORDTOOL=sshpass #input sshpass or passh
function openScreen {
    screen -dmS ssh $PASSWORDTOOL -p $PASSWORD ssh router
}
while [ true ]; do
    if [[ $(ifconfig "$WAN" | grep '169.' | cut -d: -f2| awk '{ print $1}'|wc -l) -eq 1 ]]; then
        udhcpc  -i $WAN
        let "ERROR++"
        sleep 5
    fi
    if [[ $(screen -ls | grep -i 'No Sockets' |wc -l) -eq 1 ]]; then
        openScreen
        let "ERROR++"
        sleep 5
    fi
    if [[ $ERROR -gt 0 ]]; then
        if [[ $(wget --timeout=20 --spider http://google.com 2>&1 | grep "www.google.com"| wc -l) -eq 1 ]]; then
            let "ERROR=0"
        fi
    fi
    if [[ $ERROR -eq 30 ]]; then
        reboot
    fi
    sleep 30
done

skrypt jest napisany z myślą o UMK jednak myślę że niewielkimi modyfikacjami zadziała na innych sieciach.
sposób instalacji   edytujemy plik /etc/rc.local

sleep 30
HOME=/root /bin/ash /root/nazwaSkryptu.sh&

#dla umk
jeżeli nie masz jeszcze skonfigurowanego ssh pobierz ssh-client
i postępuj wg instrukcji na stronę

#offtop
cerazry wielkie dzięki za nie jedną pomoc za soft dla linksys 32x który działa szybciej niż oryginalny openwrt na nim (tylko wyższe kanały nie działają ale to norma na openwrt wiec się pogodziłem )
w tym tygoniu postaram się zrobić dotacje smile

z wazie jakiś pytań sugestii co poprawić piszcie śmiało
pozdrawiam
Wiktor Wołk