vasquez155
Goto Top

Verbesserung PING Server-EmailUser

Bitte schaut euch den Batch mal an, wäre cool wenn mir da jemand helfen könnte.

Hallo an alle,

also vielen Dank schonmal für Ihre eure Hilfe.

Ich hab den Batch jetzt auch hinbekommen. Doch hätte ich gerne bestimmte Verbesserungen, bei denen ich aber absolut nicht weiterkomme. Vielleicht kennt sich jemand von euch aus damit.

Ich würde gerne folgende Verbesserungen haben wollen.

1. Ich möchte gleichzeitig 3 Server anpingen, und wenn 2 von 3 Servern nicht erreichbar sind, soll eine Email versendet werden. (Funktioniert da die ON ERROR Funktion?)
2. Soll die tmp. Datei unter einem bestimmt Ordner abgespeichert werden.

Dies ist mein Batch bisher:

@echo off


:loop
rem Ping absetzen
ping -n 1 -a 192.168.10.243 > online.tmp


rem Auswerten des Pings
find "berschreitung der Anforderung." online.tmp > online2.tmp
find "Unbekannter Host" online.tmp >> online2.tmp

for %%i in (online2.tmp) do set Size=%%~zi


if %Size% GTR 70 goto nein


rem Adresse ist erreichbar
echo %1 ist erreichbar

goto ende

:nein
rem Adresse ist nicht erreichbar
echo %1 ist NICHT erreichbar

blat.exe .....

:ende

Content-ID: 124656

Url: https://administrator.de/contentid/124656

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

aqui
aqui 10.09.2009 um 13:48:51 Uhr
Goto Top
Wozu das Rad neu erfinden wenn es das schön grafisch gibt:

http://kin.klever.net/bigbrother/

Da muss man dann nur das Logfile bei Änderung emailen, was ja auch kein Problem ist...
Vasquez155
Vasquez155 10.09.2009 um 13:54:48 Uhr
Goto Top
Verstehe ich jetzt nicht.

WIe soll das funktionieren? Ist das ein Programm?

Aber vielen Dank schonmal für deine Email.
Gruss
Vasquez155
Vasquez155 10.09.2009 um 16:26:20 Uhr
Goto Top
Ich habe jetzt einen neuen Batch geschrieben:

Leider bringt er mir folgenden Fehler....

Ungltiger Parameter .log.

' .log
_____ naechster PING _____ .log


So sehen meine Batches aus. Vielleicht weiss jemand von euch, was ich falsch gemacht habe.


1. @echo off


REM Datum in Variable Date schreiben

FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B


:waiting

@echo off

ping -n 120 x.x.x.x > NUL

goto pinging


:pinging

@echo off

call pingserv.cmd 192.168.10.243

call pingserv.cmd 192.168.10.242


@echo on

echo ' >> C:\Dokumente und Einstellungen\zellerf\Eigene Dateien-%date%.log

echo _______________________ >> C:\Dokumente und Einstellungen\zellerf\Eigene Dateien-%date%.log

echo _____ Warteschleife _____ >>C:\Dokumente und Einstellungen\zellerf\Eigene Dateien-%date%.log
echo _______________________ >> C:\Dokumente und Einstellungen\zellerf\Eigene Dateien-%date%.log

@echo off

goto waiting


2. @echo off


REM Datum in Variable Date schreiben

FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B


@echo on


echo ' >> C:\PING-log\IP-pinging-%date%.log

echo _____ naechster PING _____ >> C:\PING-log\IP-pinging-%date%.log

date /t >> C:\PING-log\IP-pinging-%date%.log

time /t >> C:\PING-log\IP-pinging-%date%.log

echo %2 >> C:\PING-log\IP-pinging-%date%.log

ping %1 >>C:\PING-log\IP-pinging-%date%.log


date /t > C:\PING-log\IP-pinging-tmp.log

time /t >> C:\PING-log\IP-pinging-tmp.log

ping %1 >>C:\PING-log\IP-pinging-tmp.log

@echo off

findstr /c:"Request timed out" C:\PING-log\IP-pinging-tmp.log

IF %ERRORLEVEL% == 1 goto end

IF %ERRORLEVEL% == 0 goto offline


:offline

@echo on

date /t > C:\PING-log\trace-%2-%1-%date%.log

time /t >> C:\PING-log\trace-%2-%1-%date%.log

echo %2 >> C:\PING-log\trace-%2-%1-%date%.log

ping %1 >> C:\PING-log\trace-%2-%1-%date%.log

tracert %1 >> C:\PING-log\trace-%2-%1-%date%.log

net send [Rechnername] Ping auf %2 - IP %1 erfolglos - Bitte das Fehlerprotokoll unter C:\PING-log\ ansehen.


:end
60730
60730 10.09.2009, aktualisiert am 18.10.2012 um 18:39:18 Uhr
Goto Top
Servus,

pingserv.cmd im Ordner C:\PING-log ?
grübel

An deiner Stelle einfach im Fehlerfall einen Counter hochzählen
set /a error = %error% +1

Schau mal nach Code bei der Formatierungshilfe und beim nächsten mal dann gerne Ross und Reiter für die Helfer hinterlassen.


Gruß
Vasquez155
Vasquez155 11.09.2009 um 10:09:01 Uhr
Goto Top
Hallo Timo,

wie meinst du das? Was soll ich dafür ersetzen? Wie würden dann mein Batch aussehen?
Bin darin sehr unerfahren, leider.

Vielen Dank für eure Hilfe.

Gruss
60730
60730 11.09.2009 um 14:26:30 Uhr
Goto Top
Zitat von @Vasquez155:
Hallo Timo,

wie meinst du das? Was soll ich dafür ersetzen?
nix - das muß für den Fehlerfall dazu - wenn du nur im Falle von 2 von 3 Servern eine Mail haben willst.

Wie würden dann mein Batch aussehen?
Schau dir das "original" nochmal an
21 IF %ERRORLEVEL% == 0 goto offline
dort
set /a error = %error% +1 (wobei dann auch ganz vorher ein set error =0 stehen muß, damit "error" definiert wird) und "eigentlich" würde ich das "original" heute auch anders schreiben. (Dank Biber&Bastla)

Bin darin sehr unerfahren, leider.

Leider hab ich nicht mehr so viel Zeit, um das 1zu1 durchzuexerzieren - schau dir das nochmal in Ruhe an, teste es - ändere es und du wirst einen Lernerfolg haben face-wink

Vielen Dank für eure Hilfe.

Gruss