[Bash] Condizione con "ping" per cambiare default gw

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
WillyLord
Prode Principiante
Messaggi: 89
Iscrizione: domenica 13 gennaio 2008, 21:04
Contatti:

[Bash] Condizione con "ping" per cambiare default gw

Messaggio da WillyLord »

Premetto che non capisco un tubo di bash script, quindi volevo qualcuno che mi desse una dritta per fare uno script.

In pratica vorrei fare:

SE
il comando "ping 10.20.30.40" mi da "richiesta scadura" lancia il comando:
"route add default gw 192.168.1.2"
ALTRIMENTI SE
posso pingarlo lancia il comando:
"route add default gw 192.168.1.1"

Qualcuno mi saprebbe indicare (anche a grandi linee) la sintassi?

Poi penso io a fare un cronjob che me lo carica ogni 10 sec.
gaspa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 754
Iscrizione: lunedì 5 dicembre 2005, 13:12
Località: Castenaso

Re: [Bash] Condizione con "ping" per cambiare default gw

Messaggio da gaspa »

Non mi pare una gran furbata, visto che comunque un ping che non va ci mette un po' di tempo.
Ma non so cosa devi fare, quindi decidi tu...

Un'idea di massima puoi prenderla da qui:

Codice: Seleziona tutto

$ ping -c1 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
--- 10.0.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

$ echo $?
1
$ ping -c1 192.168.1.169
PING 192.168.1.169 (192.168.1.169) 56(84) bytes of data.
64 bytes from 192.168.1.169: icmp_seq=1 ttl=64 time=0.066 ms

--- 192.168.1.169 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.066/0.066/0.066/0.000 ms
$ echo $?
0
--
-gaspa-
Avatar utente
WillyLord
Prode Principiante
Messaggi: 89
Iscrizione: domenica 13 gennaio 2008, 21:04
Contatti:

Re: [Bash] Condizione con "ping" per cambiare default gw

Messaggio da WillyLord »

Deva fare un dead gateway detection, ma quando non funziona a livello di Ips.

Hai qualche consiglio?
Avatar utente
takeshi
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 789
Iscrizione: venerdì 24 novembre 2006, 18:33

Re: [Bash] Condizione con "ping" per cambiare default gw

Messaggio da takeshi »

ping ammette i timeout:

Codice: Seleziona tutto

if ping -w1 -c1 $indirizzo >/dev/null; then
    echo "ping riuscito"
else
    echo "ping fallito"
fi
Nel peggiore dei casi aspetti 1 secondo (se la rete è lenta conviene aumentare il parametro -w).
Raising Elephants Is So Utterly Boring
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti