Alert se un IP non risponde al Ping [Revised]

Questo articolo è stato letto 9037 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:

[sociallocker]

@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

puoi anche scaricare il file esempio da questo link

[/sociallocker]

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:

Enjoy ;)

Questo articolo è stato letto 9037 volte !

Condividi:

Nessun commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.