Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 04.12.2010 um 23:45:40 Uhr
PS: Mist, das falsche Unterforum, kann das bitte jemand nach Entwicklung -> Batch verschieben?
Jepp - zum Beispiel der Beitragsersteller. Anmelden und auf "Editieren" des Beitrags klicken.
Danach lässt sich der Beitrag auch richtig hinschieben.
Aber ich kann das auch schnell machen.

Grüße
Biber
GELÖST

Ca. 200 Device per Ping abarbeiten und in eine Log-Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: Mikefield

Mikefield (Level 1) - Jetzt verbinden

04.12.2010, aktualisiert 23:45 Uhr, 3803 Aufrufe, 11 Kommentare

Hallo Zusammen,

wir müssen mehrere IP-Adressen abfragen und das Ergebnis protokollieren.

Die IP-Liste (ca. 200 Einträge) sieht wie folgt aus:

01.
Type     Name              IP Address 
02.
AUDIX    france            10.200.199.40                            
03.
AUDIX    intuity           10.200.96.80                             
04.
IP       INDIA             10.181.130.5                             
05.
IP       SYD_DCTR          10.180.15.87                             
06.
IP       SYD_DCTR2         10.180.15.78                             
07.
IP       EMMC              10.200.96.140                            
08.
IP       NORTEL_ITALY      10.200.10.126                            
09.
IP       SP_ESS_1          10.200.96.21                             
10.
IP       SP_ESS_2          10.200.96.22                             
11.
IP       UK_ESS_1          10.203.149.241                           
12.
IP       UK_ESS_2          10.203.149.242                           
13.
IP       clan02a05         10.200.251.11                            
14.
IP       clan02b05         10.200.251.21                           
Es soll ein "normaler" Ping mit 4 Abfragen abgesetzt werden, das Ergebnis sollte wie folgt aussehen und in einer Datei gespeichert werden.
01.
Datum			Zeit			Type	Name			IP-Address	     Ping1	Ping2	Ping3	Ping4 
02.
04.12.2010	19:35:48,43	IP	SP_ESS_1	10.200.96.21	<1ms	<1ms	<1ms	<1ms 
03.
04.12.2010	19:35:48,43	IP	SP_ESS_2	10.200.96.21	<1ms	<1ms	<1ms	<1ms
Ist das so per Batch umsetzbar? Ich habe schon im Forum gesucht, aber leider nichts passendes gefunden.


mf

PS: Mist, das falsche Unterforum, kann das bitte jemand nach Entwicklung -> Batch verschieben?
Mitglied: bastla
04.12.2010 um 20:41 Uhr
Hallo Mikefield!

Ungetestet etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Liste=D:\IP-Liste.txt" 
03.
set "Log=D:\Log.txt" 
04.
 
05.
>"%Log%" echo Datum			Zeit			Type	Name			IP-Address		Ping1	Ping2	Ping3	Ping4  
06.
for /f "usebackq tokens=1-3" %%a in ("%Liste%") do ( 
07.
    set "Zeile=!date!			!time!			%%a	%%b			%%c		" 
08.
    for /f "tokens=5" %%i in ('ping %%c^|findstr "TTL"') do for /f "delims=Zeit" %%t in ("%%i") do set "Zeile=!Zeile!	%%t" 
09.
    >>"%Log%" echo !Zeile:<=^<! 
10.
)
Grüße
bastla
Bitte warten ..
Mitglied: Mikefield
05.12.2010 um 09:28 Uhr
Hallo Bastla!

Danke für die schnelle Hilfe, habe es getestet, bekomme aber bei 5 Testeinträgen in der IP-Liste 6 Fehlermeldungen:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Habe hier Windows 7 32bit, falls das eine Rolle spielt.


mf.
Bitte warten ..
Mitglied: bastla
05.12.2010 um 11:36 Uhr
Hallo Mikefield!

Wird vermutlich ein Sonderzeichen-Problem sein - es wäre daher sinnvoll (gewesen), die entsprechenden Einträge zu posten ...

Abgesehen davon kannst Du aus dem "echo off" in der ersten Zeile ein "echo on" machen und den Batch von der Kommandozeile starten - dann siehst Du, was abläuft.

Grüße
bastla
Bitte warten ..
Mitglied: Mikefield
05.12.2010 um 11:59 Uhr
Hallo Bastla!

Ich vermute es liegt am Schluß an der Ausgabe oder an diesem set Zeile. Die Einzelschritte funktionieren.

01.
F:\test>ping0 
02.
 
03.
F:\test>set "Liste=F:\Test\nodes.txt" 
04.
 
05.
F:\test>set "Log=F:\Test\Ping.txt" 
06.
 
07.
F:\test>for /F "usebackq tokens=1-3" %a in ("F:\Test\nodes.txt") do ( 
08.
set "Zeile=!date!                       !time!                  %a      %b 
09.
                %c              " 
10.
 for /F "tokens=5" %i in ('ping %c|findstr "TTL"') do for /F "delims=Zeit" %t i 
11.
 ("%i") do set "Zeile=!Zeile!   %t" 
12.
 echo !Zeile: 1>>"F:\Test\Ping.txt" 0<<! 
13.
14.
 
15.
F:\test>( 
16.
set "Zeile=!date!                       !time!                  Router  DSL2184 
17.
                192.168.150.1           " 
18.
 for /F "tokens=5" %i in ('ping 192.168.150.1|findstr "TTL"') do for /F "delims 
19.
Zeit" %t in ("%i") do set "Zeile=!Zeile!        %t" 
20.
 echo !Zeile: 1>>"F:\Test\Ping.txt" 0<<! 
21.
22.
 
23.
F:\test>for /F "delims=Zeit" %t in ("Zeit<1ms") do set "Zeile=!Zeile!   %t" 
24.
 
25.
F:\test>set "Zeile=!Zeile!      <1ms" 
26.
 
27.
F:\test>for /F "delims=Zeit" %t in ("Zeit<1ms") do set "Zeile=!Zeile!   %t" 
28.
 
29.
F:\test>set "Zeile=!Zeile!      <1ms" 
30.
 
31.
F:\test>for /F "delims=Zeit" %t in ("Zeit<1ms") do set "Zeile=!Zeile!   %t" 
32.
 
33.
F:\test>set "Zeile=!Zeile!      <1ms" 
34.
 
35.
F:\test>for /F "delims=Zeit" %t in ("Zeit<1ms") do set "Zeile=!Zeile!   %t" 
36.
 
37.
F:\test>set "Zeile=!Zeile!      <1ms" 
38.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung 
39.
ist falsch. 
40.
 
41.
F:\test>
mf
Bitte warten ..
Mitglied: bastla
05.12.2010 um 17:14 Uhr
Hallo Mikefield!

Wenn Deine "Nodes.txt" auch eine Zeile mit den Spaltenüberschriften enthält (ansonsten "skip=1" weg lassen), sollte das dann etwa so klappen (die Anzahl der enthaltenen TAB musst Du ev noch etwas anpassen):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Liste=F:\Test\nodes.txt" 
03.
set "Log=F:\Test\Ping.txt" 
04.
 
05.
>"%Log%" echo Datum			Zeit			Type	Name		IP-Address		Ping1	Ping2	Ping3	Ping4 
06.
for /f "usebackq skip=1 tokens=1-3" %%a in ("%Liste%") do ( 
07.
    set "Zeile=!date!		!time!		%%a		%%b		%%c" 
08.
    for /f "tokens=5" %%i in ('ping %%c^|findstr "TTL"') do for /f "delims=Zeit" %%t in ("%%i") do set "Zeile=!Zeile!	%%t" 
09.
    >>"%Log%" echo !Zeile! 
10.
)
Grüße
bastla
Bitte warten ..
Mitglied: Mikefield
05.12.2010 um 18:53 Uhr
Hallo Bastla!

Super, es funktioniert! Das mit den TABS werde ich dann noch korrigieren.
Macht es viel Aufwand noch eine Echo Ausgabe einzubauen, welches Device gerade verarbeitet, sprich angepingt wird?
Bei 200 Devices auf einen ewig blinkenden Kursor zu schauen fordert vie Geduld.

mf
Bitte warten ..
Mitglied: bastla
05.12.2010 um 20:07 Uhr
Hallo Mikefield!

Einfach zwischen Zeile 7 und 8 etwas in der Art:
echo Verarbeite: %%b	%%c
Grüße
bastla
Bitte warten ..
Mitglied: jeb-the-batcher
06.12.2010 um 00:19 Uhr
Hallo Mikefield,

statt 4*200 Sekunden zu warten, könnte man mehrere gleichzeitig abfragen.
Indem man "ping-tasks" startet und die Ausgabe in eine Datei Umleitet und dann analysiert.

Etwa sowas in der Art
01.
@echo off  
02.
setlocal enabledelayedexpansion 
03.
set "Liste=F:\Test\nodes.txt" 
04.
set "Log=F:\Test\Ping.txt" 
05.
>"%Log%" echo Datum			Zeit			Type	Name		IP-Address		Ping1	Ping2	Ping3	Ping4 
06.
 
07.
rem Pro Ping einen neuen Prozess asyncron im gleichen Fenster starten, ausgabe nach ping_IP.txt umleiten 
08.
for /f "usebackq skip=1 tokens=1-3" %%a in ("%Liste%") do ( 
09.
   start /b ping %%c > ping_%%c.txt 
10.
11.
 
12.
rem Abwarten, damit alle fertig sind 
13.
ping -n 5 localhost > nul  
14.
 
15.
rem Jetzt alle einlesen 
16.
for /f "usebackq skip=1 tokens=1-3" %%a in ("%Liste%") do ( 
17.
    set "Zeile=!date!		!time!		%%a		%%b		%%c" 
18.
    for /f "tokens=5" %%i in ('type ping_%%c.txt^|findstr "TTL"') do for /f "delims=Zeit" %%t in ("%%i") do set "Zeile=!Zeile!	%%t" 
19.
    >>"%Log%" echo !Zeile! 
20.
)
Grüße
jeb
Bitte warten ..
Mitglied: bastla
06.12.2010 um 00:27 Uhr
@jeb
Gute Idee
Frage am Rande: Welchen Vorteil hat
'type ping_%%c.txt^|findstr "TTL"'
gegenüber
'findstr "TTL" ping_%%c.txt'
?

Grüße
bastla
Bitte warten ..
Mitglied: jeb-the-batcher
06.12.2010 um 11:30 Uhr
Zitat von bastla:
@jeb
Gute Idee
Frage am Rande: Welchen Vorteil hat
'type ping_%%c.txt^|findstr "TTL"' 
> 
gegenüber
'findstr "TTL" ping_%%c.txt' 
> 
?

Grüße
bastla

Hallo bastla,

es gibt natürlich keinen Vorteil ich hab einfach den vorhanden Code möglichst wenig geändert.

Und außer bei Unicode/Codepage Problemen fällt mir auch kein Vorteil ein, bei dem ein type <file> [PIPE] besser wäre.

PS: Die Idee klappt auch, ich synchronisiere so immer mehrere Repositorys gleichzeitig, das spart deutlich Zeit

Gruß
jeb
Bitte warten ..
Mitglied: Mikefield
07.12.2010 um 21:10 Uhr
Hallo Jeb! Danke für die Alternative! Inzwischen ist das nicht mehr so tragisch mit den 4x200 Sekunden.
Das Script läuft inzwischen per Scheduler auf einem Kundenrechner, so daß die Verzögerungen die durch
eine VPN entstehen vermieden werden.

Vielen Dank auch an Bastla für die Unterstützung am Sonntag!

mf
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Netzwerkmanagement
gelöst Sophos UTM220 - Appliance CPU Auslastung LOG-Datei downloaden? (7)

Frage von 1410640014 zum Thema Netzwerkmanagement ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...