[bash] script che pinga

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
mbiza
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: venerdì 9 novembre 2007, 16:13

[bash] script che pinga

Messaggio da mbiza »

Ho la necessità di sapere appena qualcuno spegne un certo computer e ho pensato di risolvere scrivendo un piccolo script che pinga il pc e avverta con un segnale quando non risponde più..

Codice: Seleziona tutto

#!/bin/bash

host=192.168.1.235

pong="pong"

while [ $pong = "pong" ]

do
	if (ping -c 2 $host)

	then
		echo "il pc è connesso alla rete!"
		pong="pong"

	else
		echo "non connesso!"
		aplay /home/renato/all/mp3/bell.wav
		pong="bvt"
		exit 0	
	fi		
done

exit 0
Volevo sapere se c'era un modo per non far vedere l'output del ping, ho provato ad aggiungere -q al comando ping ma stampa lo stesso...

Accetto ogni tipo di critica e suggerimenti, o sapere se c'è un'altro metodo.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [bash] script che pinga

Messaggio da crap0101 »

prova con
ping -c 2 $host > /dev/null
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
mbiza
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: venerdì 9 novembre 2007, 16:13

Re: [bash] script che pinga

Messaggio da mbiza »

Perfetto! Grazie crap0101, funziona alla grande! anche se non so perchè  >dev/null ci riesce, l'ho visto in molti comandi ma non ho mai capito come funzioni.
L'unico problema adesso è che una volta lanciato lo script l'unico modo per fermarsi è chiudere il terminale, salvo che l'host si disconnetta. Nemmeno con Ctrl+C si ferma...
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [bash] script che pinga

Messaggio da crap0101 »

facendo una piccola modifica così pare vada:

Codice: Seleziona tutto

#!/bin/bash

host=192.168.1.235

c=0

while [ 1 ]

do
	if (ping -c 2 $host > /dev/null)

	then
		echo "il pc è connesso alla rete!"
        if [ $c -eq 2 ]; then
            exit 0
        else
            (( c++ ))
        fi
	else
		echo "non connesso!"
		aplay /home/renato/all/mp3/bell.wav
		pong="bvt"
		exit 0	
	fi		
done

exit 0
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
mbiza
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 250
Iscrizione: venerdì 9 novembre 2007, 16:13

Re: [bash] script che pinga

Messaggio da mbiza »

grazie mille, ora è davvero perfetto
In pratica hai impostato l'uscita quando si preme "C" ma non ho capito il funzionamento di -eq 2

edit: credo di aver afferrato, quella condizione non sarà mai vera e alla pressione di qualsiasi tasto lo script si ferma, ma correggimi se sbaglio!
Ultima modifica di mbiza il giovedì 16 ottobre 2008, 19:46, modificato 1 volta in totale.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [bash] script che pinga

Messaggio da crap0101 »

veramente, siccome sembrava che non si fermasse mai (pensavo fosse qualcosa col parametro -c 2 di ping che non andava) allora ho solo aggiunto un contatore che lo fa al posto suo, così dopo due volte che riesce a connettersi  esce.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti