Programm, welches die Netzwerk-Verbindung prüft und protokolliert

tomm1984

Lt. Junior Grade
Registriert
Juni 2016
Beiträge
352
Hallo,

seit einiger Zeit habe ich Problem beim Backup meines Notebooks per Kabel auf einen HomeServer. Das Backup benötigt im FULL im Grunde ein Nacht (rund 1 TB, Gigabit-LAN), meistens läuft es aber im DELTA.

Das Problem ist, wenn während des Backups (auch beim DELTA) die Verbindung abreißt / unterbrochen wird, entsteht ein Schiefstand in der Sicherung und ich kann das Zeug von vorn laufen lassen. In letzter Zeit passiert das leider häufiger. Ich bin dabei die Fehler einzugrenzen und hatte beim letzten FULL per Crossover-Kabel kein Problem. Jetzt kann es ja nicht mehr viel sein, vielleicht der Switch (reiner Netzwerk-Switch, kein Router) oder die Kabel CAT 5e. Das Kabelnetzwerk ist nicht mit dem Internet oder einem anderen Netzwerk verbunden. Zur Zeit des Backups sind auch keine Drucker oder andere Geräte im Netz.

Das Netzlaufwerk ist per Computername, nicht per IP, verbunden.

Zur Frage:
Hätte ich ein Tool, welches sich bspw. mit dem HomeServer die ganze Zeit Daten hin und her schickt und gleichzeitig protokolliert, wann und lange die Verbindung weg war, würde mir das massiv helfen.

Ich bräuchte nicht jedes Mal das Backup neu einrichten und außerdem weiß ich dann ja nur nach x Stunden, dass die Verbindung min. einmal weg war.

Dankeschön.
Ergänzung ()

Achso, das Programm sollte so "freundlich" sein und nach einer etwaigen Unterbrechung wieder fleißig Daten senden / austauschen, sobald die Verbindung wieder da ist.
 
Das kann Windows selbst. Du kannst die Ausgabe in der Kommandozeile in eine Datei schreiben lassen. Dann nur noch
ping -t 'IP' > C:\dummy.txt
laufen lassen
 
Welches Programm wird zum erstellen des Backups benutzt? Eigentlich sollten solche Programme auch mit Verbindungsabbrücken klar kommen, bzw. aufzeigen, falls das Backup abgebrochen wurde und wann das passiert ist.
 
@Nilson: danke, probiere ich gleich mal :)
@distro: synctoy... ich weiß, da kann man verschiedener Meinung sein, aber darauf vertraue seit jahren (!) :-)... im Grunde werden die Daten nur gespiegelt und auf dem HomeServer läuft dann ein Job, der die Daten von der dortigen Platte inkrementell wegschreibt. thats it! ich bin kein Techi, ich brauche was zu Klicken und das Zeug muss schlichtweg laufen.
Ergänzung ()

krass. jetzt beim testen der cmd passiert es gerade wieder: der remote-desktop ist weg und ca. 2 minuten später wieder verfügbar.

Was kann das sein?
Ergänzung ()

@Nilson: bekomme ich noch irgendwie einen Zeitstempel in die txt?
 
Du könntest es auchmal mit Wireshark probieren.
 
Wireshark ist aber schon etwas Overkill...vor allem sich damit überhaupt erst einzuarbeiten.
Wegen Zeitausgabe in CMD kanst du folgendes machen:
Code:
ping -t HomeServerIP|find /v ""|cmd /q /v:on /c "for /l %a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)"

Bzw. als Batch-Script:
Code:
@echo off
ping -t HomeServerIP|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)"

Überleg dir ob du nicht ein anderes SyncTool suchen sollst, was auch mit Netzwerkabbrüchen klar kommt.
Sonst war deine Fehlersuche schon logisch. Laptop und Server hast du ja durch den Einsatz von Crossover Kabel ausgeschlossen, dann bleibt nur noch Switch oder die beiden Patchkabel.
 
@tim: Mag ja sein, dass du dem Tool treu ergeben bist, aber wenn es derartige Probleme macht, ist es vielleicht doch nicht so toll wie du glaubst. Andere Tools kommen mit kurzen Unterbrechungen deutlich besser klar. Ganz banal gibt es da zB RoboCopy. Entsprechend konfiguriert (Anzahl Retries, Wartezeit, etc) ist RoboCopy erstaunlich robust und es gibt etliche GUIs dafür..

Das soll nicht heißen, dass du das zugrundeliegende Problem nicht weiter suchen sollst, sondern nur, dass Fehler in der Verbindung immer mal auftreten können - und jedes mal wird dein Backup flöten gehen, weil das Backuptool nicht damit klarkommt....

Statt der batch von distrophik könntest du auch PingPlotter verwenden. Das ist zwar eigentlich für die Analyse von Routen zu einem Server im Internet gedacht, funktioniert aber auch im LAN.


Übrigens: Crossover-Kabel sind bei Gigabit-Ethernet nicht nötig. Die LAN-Adapter erkennen eine gekreuzte Verbindung und drehen intern die Sende-/Empfangsleitungen einfach um.
 
@distro: besten dank für den code und ja und nein; anderes tool wäre nice, aber dieses problem zu ergründen wäre kurzfristig zieführender. Sobald es dann läuft, würde ich mich mal mit neuen tools vertraut machen.

@raijin: dank für den tool-tipp.
crossover-kabel: wirklich? dann hätte ich keine shoppen brauchen :-D probiere ich nachher mal aus.

Neue Erkenntnisse:
  • Es scheint am Notebook zu liegen. Hier ist seit bald 2,5 Jahren Win 8 / Win 8.1 drauf - meine längstes OS ever. Grundsätzlich bin ich damit sehr zufrieden, in letzter Zeit stürzt der Explorer allerdings häufiger ab.
  • Soeben wurde die Verbindung wieder unterbrochen, aber mit einem anderen Notebook im Netzwerk erreiche ich über denselben Weg noch den HeimServer und habe auch eine stabile RemoteDesktop-Verbindung laufen. Damit würde ich ausschließen, dass das sich der Switch ausklingt und neustartet. Verwunderlich ist, dass es über das Crossover-Kabel ging - vielleicht Zufall... Vielleicht mal den Netzwerkkarten-Treiber des Notebook neuinstallieren?
  • Parallel mit zum ausgesetzten Netzwerk sind im Task-Manager der IE, die Remotedesktop-Verbindung und VMware Player (die vm ist lokal) "inaktiv" - hat jemand eine Idee, wie das zusammenhängen könnte? Könnte das im weiteren Sinne mit den Explorer-Aussätzern zu tun haben?
 
Zuletzt bearbeitet:
tim1984 schrieb:
crossover-kabel: wirklich? dann hätte ich keine shoppen brauchen :-D probiere ich nachher mal aus.
Jepp, zwar ist das streng genommen nur als Optional im Gigabit-Standard spezifiziert, aber ich habe noch nie einen Gigabit-Adapter ohne diese Funktion gesehen. Sie ist aber manchmal im Datenblatt schwierig zu finden, weil sie zwar offizell AUTO MDI-X heißt, aber von den Herstellern gerne anders bezeichnet wird: Crossover-detection (das ist noch eindeutig), aber eben auch Auto sensing oder Auto uplink.

@Topic: Wenn es über einen anderen Rechner einwandfrei läuft, liegt der Fehler wohl in der Tat bei deinem Laptop. Um einen Hardware-Defekt auszuschließen, könntest du ein Live-Linux runterladen und auf einen USB-Stick kopieren. Anschließend startest du den Laptop damit und machst denselben Pingtest. Bleibt die Verbindung stabil, ist Windows oder der Treiber schuld. Gibt es auch mit Linux Probleme mit hohen Paketverlusten bis hin zu minutenlangen Unterbrechungen, dann ist es zu 99% ein Hardware-Defekt am LAN-Adapter, dem Kabel oder dem Switch(port). Funktioniert ein anderer Laptop an demselben Kabel/Switchport einwandfrei, ist in der Tat der LAN-Adapter defekt.
 
Hallo,

ich habe nochmal zwei Fragen zu dem Batch-Skript:

Code:
@echo off
ping -t 192.168.178.254|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" > C:\Users\User1\Desktop\netzwerk.txt

1.) Was bedeutet die Null in Klammern "%%a in (0) do"? Ich habe nämlich bei mir auch eine Version gefunden, in der an dieser Stelle eine (1) steht.... und weiß nicht warum / woher ich das haben könnte (ich glaube das hängt mit dem %-Zeichen zusammen und ob ich es in eine .bat-Datei packe oder via cmd ausführe...)
2.) Wie kann ich den Dateinamen dynmasich setzen, also mit Datum und Zeit der ersten Ausführung (z.B. "2019-04-18 09:01:01 Netzwerk.txt" ... aber es soll dann für diese eine Ausführung alles in diese eine Datei geschrieben werden, nicht jede Sekunde eine neue erstellt werden :-D )?

Dankeschön.
 
1. Hm.. Eigentlich ist FOR /L eine normale zählende FOR-Schleife, die drei Parameter benötigt, (start, schritt, ende). So geht FOR /L (1,1,10) zB von 1 in 1er-Schritten bis 10. Wenn ich aber (0) ausprobiere, wird's ne Endlosschleife, während (1) genau gar nichts tut. Ohne das Monster von Batchzeile jetzt im Detail nachvollziehen zu wollen, vermute ich mal, dass nichts-tun eher sinnfrei ist und hier wohl die Endlosschleife das Ziel war, also (0).

2. Dynamischer Dateiname

Code:
SET stunden=%time:~0,2%
if %stunden% lss 10 (set stunden=0%time:~1,1%)

SET filename=%date:~10,4%-%date:~4,2%-%date:~7,2%_%stunden%%time:~3,2%%time:~6,2%.txt
Die kleine Trickserei bei den Stunden rührt daher, dass %time% bei den Stunden keine führende 0 hat, sondern ein Leerzeichen.
 
Danke, super!

Und den SET-Time-Part dann in die Batch-Datei einfach" unter den existierenden Block?
 
Ach sorry, das fehlte natürlich noch. Obiger Code muss über der fraglichen Zeile sein und dann muss statt "> C:\Users\User1\Desktop\netzwerk.txt" natürlich "> %filename%" da stehen.
 
Danke nochmals. (hab echt keine Coding-Ahnung ... wie man wohl sehen kann :D)
Gibt es auch noch etwas "Cooles" für "User1" ... irgendetwas wie "current user", wobei ich mir der Schreibweise nicht sicher bin?
 
Hä? Den Pfad kannst du dir doch nach Belieben aussuchen. Von mir aus C:\meinlieblingsordner\nocheinordner\undnocheiner\%filename%
 
ja, das stimmt. aber ich würde es gern auf verschiedenen Rechner ausführen, ohne den User immer anpassen zu müssen. Also in etwa so: C:\Users\<current user>\Desktop\...

Ich habe es hier mal zusammengebastelt, schmeißt aber Fehler bzw. erzeugt keine Datei auf dem Desktop.

Code:
@echo off

SET stunden=%time:~0,2%
if %stunden% lss 10 (set stunden=0%time:~1,1%)

SET filename=%date:~10,4%-%date:~4,2%-%date:~7,2%_%stunden%%time:~3,2%%time:~6,2%

ping -t 192.168.178.254|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" > C:\Users\<current user>\Desktop\%filename%.txt
 
Wenn du in der Kommandozeile einfach mal "set" eingibst, siehst du allerhand Umgebungsvariablen, darunter auch USERNAME=tim1984. Darauf kannst du dann einfach zugreifen, in dem du %username% (groß/klein ist bei Batch egal) in der Batch verwendest.

Dort gibt es auch direkt das %userprofile%
 
Hi Raijin,

das mit dem Usernamen habe ich hinbekommen, aber der Dateiname wirft noch Fehler. Ist das in Deinem Code ein Typo ..."lss" anstatt "less"?

Aber auch mit "less" funktioniert es nicht. Muss das "less than" heißen?
 
Ich schreib es mal in groß:

LSS, nicht zu verwechseln mit ISS

Ich hab es so wie es dasteht vor dem Posten getestet, allerdings nur innerhalb meiner XP-VM, in der ich gerade arbeite.


*edit
Auch unter Windows 7 geht das. Habe einfach in der Kommandozeile "if 5 lss 7 echo ja" eingegeben und es kommt .. .. ja ;)
 
nee, dann passt es. habe es kopiert und mir angesehen, warum der eine Code geht und der andere nicht. Und da dachte ich ...

so funktioniert es:
Code:
@echo off

SET username

ping -t 192.168.178.254|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!date! !time! !data!)" > C:\Users\%username%\Desktop\network\2019-04-18_2_bat.txt

so dann nicht:

Code:
@echo off
SET username
SET stunden=%time:~0,2%
if %stunden% lss 10 (set stunden=0%time:~1,1%)
SET filename=%date:~10,4%-%date:~4,2%-%date:~7,2%_%stunden%%time:~3,2%%time:~6,2%.txt

ping -t 192.168.178.254|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!date! !time! !data!)" > C:\Users\%username%\Desktop\network\%filename%

ich nehme mit Spracheinstellungen hat das nichts zu tun und "stunden" ist eine von Dir gesetzte Variable, die auch "hans" heißen könnte, korrekt?
Ergänzung ()

Nachtrag: hier noch ein Bild ohne Echo
 

Anhänge

  • 2019-04-18 bat.PNG
    2019-04-18 bat.PNG
    43,1 KB · Aufrufe: 137
Zurück
Oben