6741
Goto Top

Ping LOG per Batch auswerten

Hallo,

ich habe für eine IP ein kleines Log Tool geschrieben.

Es wird ca. alle 10min ein Server angepingt, dies pipe ich in eine Datei und davor ein:


echo ********** %time% >> c:\log\ping_IP_%date%.txt

ping IP -n 10 >> c:\log\ping_IP_%date%.txt
als Warteschleife ein:

ping localhost -n 600

Ich möchte jetzt über alle Dateien eine Auswertung wann die TTL Zeit über 100ms Sekunden war.

ein Auszug aus der LOG Datei:

********** 11:33:36,45 


Ping wird ausgefhrt fr IP mit 32 Bytes Daten:



Antwort von IP : Bytes=32 Zeit=245ms TTL=125

Antwort von IP : Bytes=32 Zeit=132ms TTL=125

Antwort von IP : Bytes=32 Zeit=210ms TTL=125

Antwort von IP : Bytes=32 Zeit=274ms TTL=125

Antwort von IP : Bytes=32 Zeit=144ms TTL=125

Antwort von IP : Bytes=32 Zeit=147ms TTL=125

Antwort von IP : Bytes=32 Zeit=108ms TTL=125

Antwort von IP : Bytes=32 Zeit=189ms TTL=125

Antwort von IP : Bytes=32 Zeit=270ms TTL=125

Antwort von IP : Bytes=32 Zeit=20ms TTL=125



Mich interessiert jetzt die Zeit und der Tag wenn die TTL 'zeit über 100ms war ....

danke

Euch ...

[Edit Biber] Ein paar Zeilen in -Tags gesetzt, damit es sich lesen lässt. [/Edit]

Content-Key: 87968

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

Printed on: April 19, 2024 at 11:04 o'clock

Mitglied: 60730
60730 May 20, 2008 at 09:07:31 (UTC)
Goto Top
Hallo Firewalldevil,

ich hab mir gestern abend den Kopf zerbrochen und bin nicht weitergekommen.

"Meiner" Bescheidenen Ansicht (ich nenn es auch Skriptvermögen) ist das mit den Daten nur mit suchen und ersetzen möglich.

Die "Datenquelle" ist "mir" zu unübersichtlich, als das ich es per Skript ohne SED / Bchange & Excel hinbekommen würde.

Mein Vorschlag für die Zukunft wäre:

So Aufzurufen, mit name der cmd leer Ip adresse - oder tausche das %1 gegen die Ip aus.

Das Skript sucht nicht nach Ausreissern, sondern nach dem Mittelwert - ist dieser höher als 100, wird der ganzen Datensalat in eine Datei 100plus.csv (im gleichen Ordner) geschrieben.

Rem Variablen setzen (Dank an Biber & Bastla für diese kurzen Varianten)
set "Jahr=%date:~-4%"  
set "Monat=%date:~-7,2%"  
set "Tag=%date:~-10,2%"  
set Zeit=%TIME:~0,5% Uhr

Rem Aufruf mit "Name der Cmd leer IpAdresse"  
Rem Schleifenbeginn
:ping
ping localhost mit -n 600
Ping -n 10 %1 | Find "Mittelwert">$tempo$  
Set /P ms=<$tempo$
Del $tempo$
Rem Setze Variable ms (lösche alles - außer der gesuchten Zahl)
Set ms=%ms:*Mittelwert =%
Set ms=%ms:* =%
Set ms=%ms:ms=%
Rem Wenn MS größer als 100 - erzeuge eine Datei 100plus.csv - die mit Excel ausgewertet werden kann.
if %ms%  GEQ 100 echo %tag%,%Monat%,%Jahr%,%Zeit%,%1,%ms% >>100plus.csv
goto ping

Sag mal - ob das für dich so ok ist.
Mitglied: 6741
6741 May 20, 2008 at 10:00:41 (UTC)
Goto Top
Hallo Timo,

danke erstmal für die Mühe ....

Grund dieses "Projekt" ist, zu erkennen wann der Server schlechte Antwortzeiten hatte.

Sollte es eine andere Variate geben, die die bessere Werte gibt. Ich bin gerne bereit dies zu testen.

Wende ich die Batch an, bekomme ich eine Datei $tempo$ in dem Ordner wo dies Batch liegt raus.

Also ich habe jetzt für jeden Tag eine Datei ( ping_10_2_0_73_20.05.2008.txt ) in dieser mus der Wert ( TTL > 100 ) überprüft werden. Vorab setze ich die Uhrzeit und dann ping ich 10x auf den Server. Jetzt noch ein ping localhost mit -t 600 für eine ca. 10min Pause, dann gehts wieder von vorne los.

So teste ich alle 10min die TTL Zeit.

Gruß und vorab Danke
Mitglied: 60730
60730 May 20, 2008 at 10:24:00 (UTC)
Goto Top
Hallo Timo,

danke erstmal für die Mühe ....

Hat Spass gemacht - von daher - gern geschehen face-wink

Grund dieses "Projekt" ist, zu erkennen wann der Server schlechte Antwortzeiten hatte.

Yupp - hab ich verstanden face-wink

Wende ich die Batch an, bekomme ich eine Datei $tempo$ in dem Ordner wo dies Batch liegt raus.

Yupp - die wurde nicht gelöscht, weil mir das Tippex ausgegangen ist - ist nun berichtigt
Aus Del $temp$ ist nun richtigerweise Del $tempo$ geworden.

Also ich habe jetzt für jeden Tag eine
Datei ( ping_10_2_0_73_20.05.2008.txt ) in
dieser mus der Wert ( TTL > 100 )
überprüft werden. Vorab setze ich
die Uhrzeit und dann ping ich 10x auf den
Server. Jetzt noch ein ping localhost mit -t
600 für eine ca. 10min Pause, dann gehts
wieder von vorne los.

So teste ich alle 10min die TTL Zeit.

Ok - mit anderen Worten hast du den Schnippsel von mir nun im Einsatz ?

Kannst ja zum testen die Zeile
if %ms% GEQ 100 echo %tag%,%Monat%,%Jahr%,%Zeit%,%1,%ms% >>100plus.csv
gegen
echo %tag%,%Monat%,%Jahr%,%Zeit%,%1,%ms% >>100plus.csv

tauschen - oder den Wert hinter GEQ kleiner setzen.

Bei mir (W2k deu) kommt die 100plus.csv - die zum import in Excel besser .txt heißen sollte - raus.
(Wenn ich GEQ 10 eingesetzt habe)