Manchmal möchte man informiert werden, wenn ein bestimmter Computer online ist. Für Supporter oder Administratoren ist dies interessant, wenn es um Systeme geht, die man beispielsweise nicht mittels Wake-on-LAN (WoL) starten kann und die nicht regelmässig verwendet werden. Nicht immer ist es möglich oder sinnvoll zu diesem Zweck im Monitoring einen Sensor oder Check anzulegen. Abhilfe schafft ein Tool samt ein Skript.

Wie so oft, wenn es um E-Mail-Benachrichtigungen im Zusammenhang mit Skripte in diesem Blog geht kommt das Tool SMTPSend von DataEnter zum Einsatz. Das eigentliche Batch/CMD-Skript ist dabei sehr übersichtlich:

@echo off

title Check if a specific host is online

rem Konfiguration

 set host=<Hostname oder IP>
 
 set sender=<Absender>
 set recipient=<Empfänger>
 set server=<Mailserver>
 set port=465
 set subject=Host is online
 set user=<Benutzername für den Mailserver>
 set password=<Passwort für den Mailserver>

rem Den Host pingen und falls dieser Online ist, eine E-Mail versenden und das Skript beenden

 :loop

 ping %host% -4 -n 2 | find "TTL" > nul
 
 if %errorlevel%==0 (
  echo %date% - %time% - The Computer "%host%" is online. > email.txt
  smtpsend.exe -f%sender% -t%recipient% -h%server% -p%port% -s%subject% -iemail.txt -v -lu%user% -lp%password% -lSMTPS
  if exist email.txt del /q email.txt
  exit
 )

 timeout /t 60 /nobreak > nul
 goto loop

Das Skript macht nichts weiter, als den Host regelmäßig anzupingen und sobald dieses erfolgreich war, eine E-Mail zu versenden.