Anwendungs-Software und Apps 14.428 Themen, 72.822 Beiträge

Robocopy - großer Kopiervorgang, Rechner fährt runter, Zustand?

Aphex Junior / 10 Antworten / Flachansicht Nickles

Hi Zusammen,

ich kopiere im Hintergrund über eine geplante Aufgabe via Robocopy eine große Containerdatei Truecrypt über WLAN (ca. 10 GB), wenn Quell-PC und Ziel-PC beide online sind + einige weitere Bedingungen erfüllt sind.

Jetzt kann es aber sein, dass ich - da ich auch nichts mitbekomme und zudem auch gar nichts mitbekommen möchte - einen PC davon herunterfahre, der Kopiervorgang bzw. die Aufgabe aber gerade gestartet hat.

Ich habe jetzt folgendes beobachtet (ich wollte dieses Szenario provozieren und habe den Quell-PC ausgeschaltet beim Kopiervorgang bzw. als ich wusste, dass die Aufgabe gerade aktiv war):

1) Die halbe Containerdatei auf dem Ziel blieb vorhanden, trotz abgebrochenem Kopiervorgang (Quell-PC wurde ausgeschaltet).

2) Die Datei müsste eigentlich korrupt bzw. unfertig sein

3) Die Datei (Containerdatei Truecrypt) lies sich zudem seltsamerweise auch noch mounten

4) Irgendwann (nachdem Quell-PC wieder online war) fing er plötzlich an den Kopiervorgang wieder aufzunehmen (das habe ich daran erkannt, dass die WLAN-Auslastung wieder anstieg + die Containerdatei gesperrt war durch den Schreibvorgang

Jetzt frage ich mich, was ich am besten mache. Eigentlich kann das ja nicht mit rechten Dingen zu gehen. Allein schon, dass sich die Containerdatei "halbfertig" mounten ließ.

Kann man irgendwie einen Befehl oder eine Option setzen, dass er die Datei im Ziel erst schreibt bzw. "freigibt", wenn sie erfolgreich kopiert wurde und ansonsten wieder "löscht" bzw. sowas in der Art? Oder dass der PC wartet bis die Aufgabe abgeschlossen wurde beim Herunterfahren? Das wäre die für mich beste Lösung.

Das muss ja irgendwie sauber lösbar sein. Ich kann schlecht jedesmal gucken, ob er die Datei geschrieben hat und am besten noch Prüfsummen valideren *ankopffass* weil halbfertige und scheinbar funktionierende Containerdateien vorhanden sind.

Vielleicht kann mir ja jmd einen Tipp geben.

PS: Das ganze ist ein C#-Skript und Robocopy wird von C# aus via Process.Start(...) aufgerufen und dann gewartet, bis der Befehl abgeschlossen wurde.

Bin gespannt!

Grüße

bei Antwort benachrichtigen
Aphex Junior mi~we „Na, wie geht es deinem kleinen Programmierprojekt? Ist schon ...“
Optionen

Jawoll ich bin fast fertig. Aber das sind schon fast 1000 Zeilen nur für das Kopieren einer Datei :-D

Ich hab das jetzt auch so entwickelt, dass das DOS_Fenster im Hintergrund ist und er mir auf dem Quell PC und Ziel PC jeweils im Tray den Fortschritt anzeigt. Dafür musste der Output von Robocopy ansynchron geparst werden (regex), da Robocopy ja zwischenzeitig den Fortschritt aktualisiert. Das war noch etwas kompliziert.

Das Herunterfahren konnte ich mit C# zwar "abfangen" jedoch nicht blockieren. Bzw. schon, aber er hat drum herum schon alles beendet und dann nur auf das Skript gewartet. Prinzipiell ok aber dann sind Virenscan und Firewall auch schon aus, das gefiel mir nicht. Jetzt habe ich einfach DontSleep gestartet VOR dem Kopiervorgang (auf Quell PC und Ziel PC per TCP Socket Verbindung) und das funktioniert einwandfrei, da DontSleep die Prio so hoch setzt, das DontSleep das Event fürs Herunterfahren als erstes empfängt und blockiert. Vermutlich hätte ich das auch setzen können in C# aber so weiß ich, dass es auf jeden Fall funktioniert.

Aber eigentlich echt gestört, ich will doch nur eine Datei kopieren :-D

Auf dem Ziel-PC muss aber ein "Serverprogramm" beim Systemstart gestartet werden und dauerhaft "lauschen" auf einem bestimmten Port, damit ich vom Quell PC die Tray-Meldungen triggern kann. Ist aber nicht schlimm. Ist jetzt so eine kleine Ampel, die immer anzeigt, ob was kopiert wird oder ob der Vorgang alle Bedingungen "überstanden hat" z. B. Dateiänderungsdatum von Quell-Datei zu Ziel-Datei größer als 7 Tage, und dann auf orange schaltet zum Anzeigen des bald startenden Kopiervorgangs und später dann rot, wenn der Kopiervorgang gerade läuft und Shutdown blockiert ist.

Macht aber Spaß. Das Ergebnis kann sich bisher auch sehen lassen....und vor allem: ich werde noch komfortabel auf alles hingewiesen mit Ankündigung, alles im Tray (nervt also nicht), und das auf Quell PC und Ziel PC. Das bekommt man ja noch nicht mal bei Total Commander oder irgendeinem anderen Kopierprogramm angezeigt :-D

bei Antwort benachrichtigen