Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Ping Statistik in ein Logfile wegschreiben

Mitglied: mhuelse

mhuelse (Level 1) - Jetzt verbinden

02.02.2006, aktualisiert 05.02.2006, 14276 Aufrufe, 12 Kommentare

Mittels eines scriptes soll ein Pingstatistik erzeugt werden und zwar so, das alle nummerischen Ausgaben des pings in eine Logdatei via tabstop wegeschrieben werden.

Hier ist mein bisheriges script, was leider nicht ganz vollständig ist da es erstens, nicht alle Werte enthält und zweitens, die die es enthält noch mit Einheiten (ms) behaftet sind. Weiterhin erzeugt es ein CR/LF am ende einer jeden Zeile im Logfile was unschön ist.

/*my script*/
SET /P count=wie oft?
SET /P braek=pause?
SET /P ipadr=ipadr?
:Again
for /f "tokens=1,3,6,9 Delims=, " %%i IN ('ping %ipadr% -n 8^|find "Minimum"') do @echo %time% %%j %%k %%l >>C:\TEMP\ping.log
wait %pause%
set /a count=count-1
cls
echo %count%
IF %count% GTR 0 Goto Again:
/*my srcript end*/


Perfekt wäre es, wenn es in der Form ein Logfile kreieren würde, Beispiel;

Time stamp_tab_IP-Adr_tab_Bytes_tab_Zeit_tab_TTL_tab_gesendet_tab_empfangen_tab_verloren_tab_Minimum_tab_Maximum_tab_Mittelwert
oder
2006.01.01_tab_00:00:00_tab_127.0.0.1_tab_32_tab_128_tab_8_tab_8_tab_0_tab_10_tab_30_tab_20
2006.01.01_tab_00:00:10_tab_127.0.0.1_tab_32_tab_128_tab_8_tab_8_tab_0_tab_20_tab_60_tab_40
Mitglied: Tundra
03.02.2006 um 08:16 Uhr
Hallo Matthias,

warum baust Du Dir nicht ein vbscript?
Du schreibst das Ping-Ergebnis in einer Temp-Datei und liest sie danach aus.
Anschließend schreibst die ausgelesenen Werte in ein Log-File.

Grüße
Guido
Bitte warten ..
Mitglied: Tundra
03.02.2006 um 08:59 Uhr
<pre>
'ping-Statistik
'03.02.2006/ge

Option Explicit

const C_Log = "c:\Log"
const C_IP = "10.49.166.194"
const C_Anzahl = "2" 'Wie oft soll der Ping wiederholt werden
const C_Pause = "2" 'Pause zwischen den Pings in Sek.

DIM O_File
DIM O_Shell
DIM O_Log
DIM L_Input
DIM G_Ping
DIM G_Anzahl
DIM G_ToDo

Set O_File = CreateObject("Scripting.FileSystemObject")
Set O_Shell = createObject("Wscript.Shell")
Set O_Log = O_File.OpenTextFile(C_Log & "\ping_" & C_IP & ".log",2,true)

call S_Run

'
'Starte das Hauptscript
sub S_Run
O_Log.writeline "Start am/um " & now
O_Log.writeline "IP-Adresse: " & C_IP
O_Log.writeline "Ping-Anzahl: " & C_Anzahl
O_Log.writeline " "
call S_Ping
O_Log.writeline " "
O_Log.writeline "Ende am/um " & now
end sub

'Ping den Rechner an
sub S_Ping
DIM O_StartTmp
DIM i
for i = 1 to C_Anzahl
Set O_StartTmp = O_File.OpenTextFile(C_Log & "\ping_" & C_IP & "_Start.tmp",2,true)
O_StartTmp.writeline time
Set O_StartTmp = nothing
O_Shell.run "cmd /c ping " & C_IP & " -n 1 > " & C_Log & "\ping_" & C_IP & "_" & i & ".tmp",0,true
O_Log.writeline i & ") " & vbTab & F_Ping(C_Log & "\ping_" & C_IP & "_" & i & ".tmp")
O_File.DeleteFile(C_Log & "\ping_" & C_IP & "_Start.tmp") 'löschen Zeitstempel
O_File.DeleteFile(C_Log & "\\ping_" & C_IP & "_" & i & ".tmp") 'lösche Pingwert
wscript.sleep C_Pause * 1000
Set O_StartTmp = nothing
Next
end sub

'Temp-Datei auswerten und Log-File bauen
function F_Ping(P_Datei)
DIM O_Zeit
DIM O_Input
DIM L_Zeit
DIM L_Zeile
DIM L_Split

Set O_Zeit = O_File.OpenTextFile(C_Log & "\ping_" & C_IP & "_Start.tmp",1,false)
L_Zeit = O_Zeit.Readline

set O_Input = O_File.OpenTextfile(P_Datei,1,false)
do until O_Input.AtEndOfstream
L_Zeile = O_Input.Readline
if instr(L_Zeile,"Pakete") > 0 then
L_Split = Split(L_Zeile,",")
F_Ping = L_Zeit & vbtab & "G " & right(L_Split(0),2) & " E " & right(L_Split(1),2) & " V " & mid(L_Split(2),12,3)
end if
loop
end function

</pre>

Grüße
Guido
Bitte warten ..
Mitglied: mhuelse
03.02.2006 um 14:35 Uhr
Hallo Matthias,

warum baust Du Dir nicht ein vbscript?
Du schreibst das Ping-Ergebnis in einer
Temp-Datei und liest sie danach aus.
Anschließend schreibst die
ausgelesenen Werte in ein Log-File.

Grüße
Guido


An sich auch mein erster Gedanke gewesen, aber es sollte ja mal schnell gehen und da fiel mir noch die gute alte *.bat aus alten Tagen ein. In Google schnell nach den nötigen Befehlen bzw. deren Syntax gesucht und fix was gebastelt.

cio
Mathias
Bitte warten ..
Mitglied: mhuelse
03.02.2006 um 14:37 Uhr
Danke für die schnelle Antwort und werde das script heute Abend mal testen. DANKE!

Mathias
Bitte warten ..
Mitglied: Tundra
03.02.2006 um 16:41 Uhr
Hi,

es kein Thema, es Deinen Wünschen weiter anzupassen.

Grüße
Guido
Bitte warten ..
Mitglied: Biber
03.02.2006 um 17:27 Uhr
Moin mhuelse,

als Batchfile sähe es so aus:
::---snipp Dauerping.bat
::/*my script*/
@echo off & setlocal
SET /P "count=wie oft? "
::--- nicht verstanden SET /P "break=pause? "
SET /P "ipadr=ipadr? "
:Again
echo ...noch %count% Ping-Tests mit %ipadr%
Ping %ipadr% -n 8 >%temp%\thisping.log
for /F "delims==,( skip=2 tokens=2,4,6" %%i in ('find "Pakete" thisping.log') do Set "SEND_RECV_LOST=%%i %%j %%k"
for /F "delims==, skip=2 tokens=2,4,6" %%i in ('find "Minimum" thisping.log') do Set "MIN_MAX_AVG=%%i %%j %%k"
echo %date% %time% %ipadr% %SEND_RECV_LOST% %MIN_MAX_AVG% >>Dauerping.log
::--- nicht verstanden wait %pause%
set /a count=count-1
IF %count% GTR 0 Goto Again:
goto :eof
:: /*my srcript end*/
::--snapp Dauerping.bat

>type Dauerping.log
03.02.2006 17:20:49,53 10.xxx.99.99 8 8 0 0ms 5ms 0ms
03.02.2006 17:20:57,95 10.xxx.99.99 8 8 0 0ms 5ms 0ms
03.02.2006 17:21:06,33 10.xxx.99.99 8 8 0 0ms 5ms 0ms

Die Syntax mit dem Befehl "wait %pause%" kenn ich nicht - ggf. entkommentieren.
Zwischen den parametern natürlich TABs eingeben, auch wenn hier nur Leerzeichen angezeigt werden.
HTH Biber
Bitte warten ..
Mitglied: mhuelse
03.02.2006 um 22:10 Uhr
Das ist schon so wie ich es mir vorgestellt habe, allerdings will ich nur die nummerischen Werte der MIN, MAX und AVG, so zusagen ohne das ms hinten dran hängt.

Der Pause string soll eigentlich nur mit einem externen "wait.exe" Befehl eine defenierte Zeit abwarten und danach den nächsten Ping (-n 8 Block) absetzen. Das war in meinem Beispielscript leider noch mit der falschen variable definiert
Bitte warten ..
Mitglied: Biber
03.02.2006 um 23:02 Uhr
::---snipp Dauerping.bat Vers. 0.02
::/*my script*/
@echo off & setlocal
SET /P "count=wie oft? "
SET /P "waitsecs=Wieviel Sek. Pause zwischen Pings? "
SET /P "ipadr=ipadr? "
:Again
echo ...noch %count% Ping-Tests mit %ipadr%
Ping %ipadr% -n 8 >%temp%\thisping.log
for /F "delims==,( skip=2 tokens=2,4,6" %%i in ('find "Pakete" thisping.log') do Set "SEND_RECV_LOST=%%i %%j %%k"
for /F "delims==, skip=2 tokens=2,4,6" %%i in ('find "Minimum" thisping.log') do Set "MIN_MAX_AVG=%%i %%j %%k"
Set "MIN_MAX_AVG=%MIN_MAX_AVG:ms=%"
echo %date% %time% %ipadr% %SEND_RECV_LOST% %MIN_MAX_AVG% >>Dauerping.log
wait %waitsecs%
set /a count=count-1
IF %count% GTR 0 Goto Again
goto :eof
:: /*my srcript end*/
::--snapp Dauerping.bat Vers.0.02

Falls Wait.exe nicht Sekunden erwartet, sondern Millisekunden, dann noch:
Set "/a waitsecs*=1000"
...einbauen nach dem Set /P waitsecs.

Gruß Biber
Bitte warten ..
Mitglied: mhuelse
04.02.2006 um 13:06 Uhr
Super script, nur kannst du mir mal erklären wie das mit dem Set Befehl funktioniert, scheint mir derzeit noch unlogisch

"Set "MIN_MAX_AVG=%MIN_MAX_AVG:ms=%"

Grüße Mathias
Bitte warten ..
Mitglied: Biber
04.02.2006 um 22:05 Uhr
Moin mhuelse,

das, was vielleicht auf den ersten Blick etwas verwirrend aussieht, ist der Wechseln/Ersetzen-Befehl des CMD-Interpreters.

Musst Du Dir langsam klarmachen: eine CMD/Batch-Variable wird immer eingeschlossen durch zwei Prozentzeichen. Beispiel
%MIN_MAX_AVG% ....hat den Wert "0ms 4ms 2ms"

Mit diesen Wert kann ich mit der Syntax
%MIN_MAX_AVG:StringAlt=StringNeu%
eine vorhandene "alte" Zeichenkette durch eine neue ersetzen.

Im konkreten Fall will ja alle Zeichenketten "ms" durch "(nichts)" ersetzen.
Deshalb: %MIN_MAX_AVG:ms=%
Und diesen Wert weise ich wieder der ursprünglichen Variablen zu.
Deshalb
Set MIN_MAX_AVG=%MIN_MAX_AVG:ms=% bzw.
Set "MIN_MAX_AVG=%MIN_MAX_AVG:ms=%"

Nichtsdestotrotz, das ist halt eine der möglichen Batchvarianten. Ebenso wäre aber auch Tundras VBSkript-Lösung geeignet, da steckt genauso Arbeit drin.

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: mhuelse
05.02.2006 um 00:02 Uhr
Danke für deine Erläuterung. Ihr habt's echt drauf, alle Achtung. Danke nochmal.

Das VB script ist auch nicht schlecht, nur wird es auf dem (Test-) Laptop nicht laufen, da dort keine VBS Umgebung vorhanden ist bzw. nicht gewünscht ist.

Ansonsten noch mal ne andere Frage; Kennt sich hier jemand mit REXX aus, speziel mit Datumsarithmetik?
Ich weis das gehört hier nicht wirklich rein, aber in den Kategorien hab ichs nicht gefunden.

Grüße Mathias
Bitte warten ..
Mitglied: Biber
05.02.2006 um 13:53 Uhr
Moin Mathias,

>>Ansonsten noch mal ne andere Frage;
Neue Frage == Neuer Beitrag
>>Kennt sich hier jemand mit REXX aus, speziel mit Datumsarithmetik?
Das werden wir nur herausfinden, wenn Du eine Frage "REXX - Frage zur Datumsarithmetik" postest...

Hier in diesem Beitrag würde es jedenfalls untergehen.
Schönen Sonntag
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Statistik über den Tag
Frage von 94451Datenbanken

Hallo Liebe Admins, ich möchte gerne eine Statistik generieren, in der ich auf einer Job_Protokoll Tabelle Prüfe wieviele Jobs ...

Firewall
Ping oder nicht Ping?
Erfahrungsbericht von LordGurkeFirewall10 Kommentare

Immer wieder erzählt mir jemand, dass man eine Firewall so konfigurieren soll, dass sie nicht auf ICMP-Echo-Requests ("Ping") antworten ...

Sicherheitsgrundlagen
Statistik öffentlicher RDP Ports
gelöst Frage von StefanKittelSicherheitsgrundlagen5 Kommentare

Hallo, kennt Jemand eine Statistik wieviele öffentliche RDP-Ports es gibt? Einfach mal so eine Zahl. Es gab ja mal ...

Administrator.de Feedback

Administrator.de Statistiken zur Erheiterung oder Information der User?

Frage von LochkartenstanzerAdministrator.de Feedback10 Kommentare

Nachdem es wieder einige lange Threads gibt, kam mir die Idee, daß es doch ganz nett wäre ein paar ...

Neue Wissensbeiträge
Voice over IP

Rufnummernblock aufbrechen nun möglich bei DTAG

Tipp von Datenreise vor 1 StundeVoice over IP

Bei der Telekom ist es seit einigen Tagen laut Aussage der Geschäftskunden-Hotline möglich, eine Rufnummernübernahme auch dann durchzuführen, wenn ...

Netzwerke
Riesiges Botnetz in Deutschland
Tipp von FFSephiroth vor 3 StundenNetzwerke1 Kommentar

Überprüft mal eure Router und NAS

Soziale Netzwerke

Freitag, der 25.05 - Facebook baut weltgrößtes P.ähm Antip.archiv der Welt auf

Information von certifiedit.net vor 4 StundenSoziale Netzwerke2 Kommentare

Guten Morgen, da fragt man sich doch allen ernstes, was Facebook damit bezwecken möchte, ich tippe ja darauf, dass ...

Erkennung und -Abwehr

VPNFilter Maleware - Großes Botnetz auf NAS und Routern in 54 Ländern aufgedeckt

Information von Frank vor 5 StundenErkennung und -Abwehr3 Kommentare

Nach Angaben von Cisco und der Sicherheitsfirma Talos wurde ein sehr großes Botnet auf Routern und NAS-System entdeckt. Die ...

Heiß diskutierte Inhalte
HTML
Link nicht vollständig
Frage von jensgebkenHTML33 Kommentare

Hallo Gemeinschaft, ich erstelle mit Word einen Serienbrief, den ich per Mail versende. Nun mein Problem der Wordserienbrief holt ...

Datenschutz
E-Mail Verschlüsselung DSGVO 2018
gelöst Frage von SoccerdeluxDatenschutz33 Kommentare

Hallo zusammen, ich verzweifele langsam und wende mich an euch und hoffe vielleicht ein paar Antworten zu finden. Ich ...

Rechtliche Fragen
DISKUSSION: Was bringt der Disclaimer "Wenn Sie nicht der Empfänger sind."
Frage von N8DragonRechtliche Fragen23 Kommentare

So oder ähnlich, lese ich immer wieder Kleingedrucktes am Ende diverser Mails. Letzten Endes wollen sie mir alle sagen, ...

Server-Hardware
HPE DL 360e GEN8 - P420 - Lüfter drehen auf nach Festplattenwechsel
Frage von maniacmacpainServer-Hardware20 Kommentare

Hallo, ich kenne den Effekt, dass man bei der GEN8 von HP ein Array eingerichtet haben muss, damit die ...