bash - skrypt monitorujący stan interfejsu sieciowego

0

Witam,

Na wstepie od razu sie przyznam ze z basha nic nie umiem, a potrzebuje pomocy przy napisaniu jednego skryptu.

Potrzebuję bardzo prostego skryptu, który będzie sprawdzał za pomocą komendy ping (lub inaczej) czy działa neostrada. Jezeli nie - to ifdown pppoa, ifup pppoa.

Czyli schamat dzialania taki: sprawdzamy czy ping zwraca to co powinien, jezeli tak, to konczymy skrypt, jezeli nie to ifdown pppoa, ifup pppoa. Dziala to w petli, dopoki ping nie zwroci tego co powinien.

Po co mi to? Zamierzam odpalac to na cronie co kilka godzin, bo z blizej nie wyjasnionych przyczyn na moim serwerze co jakis czas przestaje dzialac net - interfejs ppp0 stoi, ale netu nie ma...

Jak sie do tego zabrac? Najbardziej chodzi mi o to, jak sprawdzac czy ping zwraca to co powinien.

0

Tak na oko to wywołujesz na przykład ping -c 1 wp.pl a potem sprawdzasz zmienną $? - jeżeli jest 1 to znaczy host unreachable (względnie inny problem), jeżeli 0 to się powiodło.

Ogólnie zmienna specjalna $? służy do sprawdzania kodu wyjścia poprzedniego polecenia.

0

zamiast wp.pl lepiej np ip bramy, szybszy wynik
poza tym w dziale 'skrypty' na bsdguru.org jest skrypt monitorujący siec na okoliczność "jakie komputery sa online" (pobiera wewnętrzne ipki z /etc/hosts)

0

albo po prostu zrob skrypt, ktory bedzie co jakis czas wywolywal " ifup pppoa" i tyle.

0

Karolaq: to nie wystarczy - jezeli juz to ifdown pppoa i ifup pppoa. A to dlatego, ze tak jak mowilem: iface stoi a netu nie ma.

Teoretycznie po zmianie ip w neo powinien polaczyc automatycznie jeszcze raz - i tak sie dzieje, ale po takim polaczeniu automatycznym czasami dzieje sie tak, ze co prawda iface stoi ale net nie dziala, nie moge zgadnac dlaczego tak sie dzieje :/ W wyniku tego, czesto z rana nastepnego dnia okazuje sie ze serwer "wisi"

Dzieki za sugestie - poprobuje z tym i jak nie bede czegos wiedziec to napisze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1