[RJESENJE]Bihnet PPPoE-automatsko startanje

Ovo bi moglo zanimati sve one kojima ide na zivce kad Bihnet prekine konekciju nakon 7 sati i onda morate ponovo da je startate.Naravno ovo ne vazi samo za Gentoo vec za sve one koji koriste rp-pppoe za konektovanje (Debian/Ubuntu pppoeconf ovo radi automatski).

[code]#!/bin/bash

interface="ppp0"
interval=60

while(true); do

    # Provjeri status pppoe konekcije
    if [[ `pppoe-status 2>/dev/null | grep 'Link is down'` ]]; then

            #echo "PPPoE je neaktivan,konektujem se ..."

            pppoe-start

            # Sacekaj malo da  $interface postane aktivan
            sleep 10

            # Provjeri da li je ppp0 aktivan
            if [[ `ifconfig $interface 2>/dev/null | grep $interface` ]]; then

                    route add default ppp0
                    /etc/init.d/ddclient restart
                    #echo "$interface je ponovo aktivan"
            else
                    #echo "Nije uspjelo aktiviranje $interface , pokusat cu za  $interval sekundi"
            fi

    fi

    # Sacekaj neko vrijeme do sljedece provjere
    sleep $interval

done[/code]
Napomena:ja sam ove echo-e sebi komentirao , jer su mi smetali pri boot-u

Sljedeci korak je skriptu staviti u boot i default runlevel

E sad vjerovatno cete imati(ako ko bude koristio ovo uopste :D) problema pri boot-u kao i ja.Desi se to da pri onom echo-u Connecting… koji izbacuje pppoe-start komanda, boot stane i morao sam Ctrl+C svaki put da bi boot nastavio.Rijesio sam to tako sto sam:

stavio ovo:

sto ce da ga “sutne” u background i tako normalno nastaviti sa boot-om.Ako radite ovaj zadnji korak onda ono dodavanje pppoe.script u default i boot runlevel nije potreban.Sve sto jos treba uraditi je

Nadam se da ce nekom ovo biti korisno :slight_smile:

P.S.
U skripti se nalazi linija /etc/init.d/ddclient restart koja restartuje dyndns updater koji ja koristim,koji se jednostavno ukloni ako ne koristite isti :slight_smile:

Zar ne bi korektnije i robusnije rješenje bilo da ovo radiš iz cron-a? U tom slučaju ne treba ti while petlja, ni spavanje po 60 sekundi, već samo u cron tabeli poziv na prepravljenu skriptu:

# MIN HOUR DAY MONTH DAYOFWEEK COMMAND */1 * * * * /etc/init.d/pppoe.script > /dev/null 2>&1
Naravno, najmanji interval za standardni cron je 1 minuta, vjerovano i ne treba ništa preciznije.

Keep on hacking :slight_smile:

Hmm mislio sam i na cron , ali da li je sa cron moguce da on provjerava da li je down pa ako je da je “digne”?Ja nisam mogao skontati kako to uraditi…

Pa tvoja skripta već provjerava da li je ppp interfejs down.
A sam (d)cron je beskonačno robusniji od bilo kojeg netrivijalnog daemona kojeg sam ikad vidio.

Da izvineš, rekonektovanje na Bihnet meni radi na svim distribucijama OSIM na Debianu, a na Debianu mi ovo tvoje rješenje ne pomaže jer Debian ne koristi rp-pppoe nego nekakav svoj pa samim time ne postoje ne naredbe pppoe-start, pppoe-status i slično. Osim toga, na Debianu kada Bihnet rotira adrese pppd ostane podignut i sve izgleda kao da radi samo ne možeš pingati ništa, nema načina da detektuješ da je link pao, pa samim time nema rješenja za taj problem nego da ručno restatruješ kada ne radi (ili da skineš sa sistema broken distro koji hoće da izmišlja toplu vodu).