Pagina 1 di 1

[Risolto] Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 13:02
da asaki
Salve,qualcuno sà dove trovare o come fare uno script per pingare ( pc,stampanti,nas) in una rete lan per poi inviare i risultati via email usando sendmail oppure php ?
ho bisogno di sapere se una macchina và in offline in modo da poterla ripristinare prima possibile.

grazie

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 13:35
da SuperStep
dovresti fare un pool infinito dei vari device e parsare l'output per vedere cosa ne esce fuori

io lo strutturerei così:
1) creerei un array con gli indirizzi dei vari device.
2) ciclerei l'array per pescare tutti gli indirizzi
3) per ogni indirizzo utilizzerei il comando ping -c 1 scrivendo una funzione che mi parsa l'output (probabilmente ping stesso possiede dei parametri per restituire vero o falso).
4) se il risultato è falso manderei la mail con il comando mail

quando il ciclo finisce utilizzerei una variabile per conservare lo sleep prima di ricominciare

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 13:41
da asaki
Non sapresti indirizzarmi dove trovare una cosa del genere?
io non ho la capacità tecnica per farlo da zero, posso solo prendere qualcosa di già fatto dalla rete e modificarlo.

Grazie

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 14:26
da rai

Codice: Seleziona tutto

#! /bin/bash

subnet="192.168.1" # adattala alla tua LAN

for N in $(seq 1 254); do
  ping -c 1 $subnet.$N >/dev/null || echo "$subnet.$N DOWN" | mail -s "oggetto della mail" "tuoaccount@tuamail.com"
done
prova a partire da questo

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 16:07
da asaki
È quello che cerco ,chiedo una piccola modifica ,la possibilità di inserire ip statici non la scansione completa .
192.168.2.1, 192.168.2.6 separati da virgola o spazi .

grazie mille

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 18:52
da rai
se hai pochi ip statici va bene usare un array come consigliava SuperStep

Codice: Seleziona tutto

#! /bin/bash

attesa=60 # metti qui i secondi di attesa tra ogni verifica
LAN=(192.168.0.3 192.168.0.5) # metti qui gli IP effettivi separati da spazi

while :; do
	for IP in ${LAN[@]}; do
  		ping -c 1 $IP >/dev/null || echo "$IP DOWN" | mail -s "oggetto della mail" "tuoaccount@tuamail.com"
	done
	sleep $attesa
done
considera che il precedente script resterebbe perennemente in esecuzione;

è del tutto equivalente (IMO consigliabile) fare invece così:

Codice: Seleziona tutto

#! /bin/bash

LAN=(192.168.0.3 192.168.0.5) # metti qui gli IP effettivi separati da spazi

for IP in ${LAN[@]}; do
	ping -c 1 $IP >/dev/null || echo "$IP DOWN" | mail -s "oggetto della mail" "tuoaccount@tuamail.com"
done
salva il precedente codice p.es. nel file /percorso/pippo e rendilo eseguibile

Codice: Seleziona tutto

chmod +x /percorso/pippo 
esegui

Codice: Seleziona tutto

crontab -e
e aggiungi alla fine del file che ti si apre la riga seguente

Codice: Seleziona tutto

* * * * * /percorso/pippo >/dev/null 2>&1
salva ed esci
questo eseguirà la verifica lanciando lo script ogni minuto. Puoi cambiare la frequenza a piacere come vedi qui o se scegli la prima soluzione modificando il valore della variabile attesa

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 19:13
da asaki
ringrazio tutti molto gentili.
con crontab è il sistema perfetto.
su ubuntu 12.04 bisogna installare altro oltre sendmail pare che attualmente non invia email.

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 20:01
da rai
in questo forum, ormai lo saprai, la regola è: un argomento/una discussione, questo per tenere pulite le discussioni per le future ricerche.
poni un'altra domanda riguardo alla configurazione di sendmail o ssmtp
PS ricorda di mettere il [Risolto] all'inizio del titolo del tuo primo post

Re: Script test pc rete lan

Inviato: lunedì 15 giugno 2015, 20:03
da asaki
Grazie a tutti.