Alert se un IP non risponde al Ping [Revised]
- Data: 06-Gen-2013
- Autore: Stefano Reverberi
- Commenti: 2
- Categorie: Script
Questo articolo è stato letto 9859 volte !
Nuovissima versione dello script che all’interno di un’infrastruttura tiene costantemente monitorato tutti gli apparati di rete pingandoli ad intervalli prestabiliti e restituendoci via mail SOLO l’esito di quelli che non rispondono. La prima versione sviluppata, prevedeva la gestione di 2 files seprati, uno contenente esclusivamente gli indirizzi IP, l’altro veniva inserito nel body del messaggio ed era l’elenco completo di indirizzi IP comprensivi di relativa descrizione, come viene descritto in questo articolo.
La cosa inizialmente poteva anche soddisfare le esigenze se si ha a che fare con una piccola infrastruttura, ma quando si ha a che fare con decine, per non dire centinaia di indirizzi IP, lal’identificazione dell’indirizzo che non risponde può risultare di difficile ricerca, così ho pensato bene che sarebbe stato utile perfezionare lo script:
Changelog:
- gestione di un unico file ascii chiamato list.txt con all’interno sia indirzizzi IP che relative descrizioni
- migliorata anche l’invio della mail con il solo IP che riporta il timeout
Vediamo quindi come prparare il file list.txt:
Seguite dalla guida precedente come preparare il tutto, ma cambiate l’ultima parte preparando appunto il file inserendo il seguente contenuto:
192.168.0.1,ROUTER
192.168.0.100,LAPTOP
192.168.0.101,NAS
192.168.0.102,PRINTER
192.168.0.108,SMARTPHONE
192.168.0.254,PC INESISTENTE PER TEST
da notare attentamente l’utilizzo della virgola separatore indispensabile, tra l’indirizzo IP e la descrizione dell’hardware associato e l’ultimo indirizzo (non esistente utilizzato solo per verificare il funzionamento dello script); io ovviamente ho utilizzato gli apparati della mia infrastruttura, voi fate altrettanto con la vostra.
Preparazione dello script ping_scheck.cmd:
Seguite dalla guida precedente come strutturare il file, ma all’interno scrivete la seguente sintassi:
@echo off
cls
REM :loop
REM Timeout prima della partenza dello scritp
set starttimeout=3
timeout /t %starttimeout% /nobreak
REM Timeout risposta al ping in millisecondi
set Timeout=3000
set logfilename=F:\tmp\ping_check\log.txt
set listfilename=list.txt
for /f “EOL=* tokens=1,2 delims=,” %%a, in (%listfilename%) do (
@ping %%a -n 1 -w %Timeout% | find “TTL” > nul
IF NOT ERRORLEVEL 1 (
ECHO %%a Responding > %logfilename%
ECHO %%a Responding
ECHO Do operations for host ON
REM se risponde non fa un cazzo
) ELSE (
ECHO Not Responding %%a %%b > %logfilename%
ECHO Do operations for host OFF
F:\tmp\ping_check\blat262\full\blat -priority 1 -bodyF %logfilename% -sf %logfilename% -to info@stefanoreverberi.com -server stefanoreverberi.com -f administrator@stefanoreverberi.com
)
)
del F:\tmp\ping_check\log.txt
REM goto loop
sostituite i 3 parametri indicati in rosso con i vostri, schedulate lo script dalle operazioni pianificate e rimanete davanti al vostro client di posta, il risultato finale:
Allegato: Alert_IP
Enjoy 😉
Questo articolo è stato letto 9859 volte !
Sistemista ICT specializzato in infrastrutture fisiche e virtuali di alta fascia. Esperto in tutti i sistemi operativi Microsoft Windows Server, networking e con una speciale dedizione ai database SQL. Grazie a tanti anni trascorsi nelle aziende manufatturiere, ho sviluppato un’ottima esperienza nella logistica di produzione, realizzando applicazioni e dedicandomi a supporto e consulenze di ogni genere.
2 commenti
Come posso scaricare lo script completo?
Ciao Mauro, l’area download è stata chiusa e lo script è stato decisamente migliorato negli anni a venire. Ti ho comunque inserito in fondo all’articolo il file zip contenente la sintassi completa.