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, 14306 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
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 4 StundenDrucker und Scanner

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 20 StundenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 3 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 4 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

LAN, WAN, Wireless
Bandbreitenverteilung Netzwerk Linux NAS Qnap
Frage von Re-AnimatorLAN, WAN, Wireless18 Kommentare

Hallo Allerseits, ich habe hier im Netzwerk ein Problem mit der Bandbreite für das ich keine Erklärung habe! und ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte15 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server15 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...