Datensicherung per Batch

ShOxarrR

Newbie
Registriert
Nov. 2014
Beiträge
2
Guten Morgen,

ich hoffe ihr könnt mir bei meinem Problem helfen.
Ich habe in einem lokalen Netzwerk(1) mehrere Client Rechner und einen Fileserver. Des Weiteren habe ich in einem anderen lokalen Netzwerk(2) einen Backupserver stehen. Zwischen den beiden Netzen ist ein Computer mit zwei Netzwerkkarten, welcher so als Schnittstelle zwischen den beiden Netzen dient.

Die Clients speichern aus Netzwerk 1 ihre Daten direkt auf das Netzlaufwerk von dem Fileserver. Anschließend sollen die User eine Batch-Datei vom Client aus ausführen, um die Daten von dem Fileserver auf den Rechner mit den zwei Netzwerkkarten zu speichern. Aus Sicherheitsgründen darf keine direkte Verbindung zum Server in dem anderen Netzwerk hergestellt werden, deswegen muss eine zweite Batch-Datei auf dem Rechner mit den zwei Netzwerkkarten ausgeführt werden, welche dann letztendlich die Daten auf den Backupserver kopiert.

Nun zu meinem Vorhaben: Die erste Batch-Datei holt sich über die Variable %computername% den Namen des Client Rechners und erstellt einen Ordner mit diesem Namen auf dem Netzlaufwerk, vom Rechner mit den zwei Netzwerkkarten. Anschließend kopiert diese die Daten aus dem User-Ordner(heißt genauso wie der Client Rechner) auf dem Fileserver Netzlaufwerk in das erstelle Verzeichnis auf dem Schnittstellen Rechner. Um jetzt der zweiten Batch-Datei mitzuteilen, welche Daten genau kopiert werden sollen, habe ich daran gedacht bei dem Kopiervorgang die Dateinamen in ein Logfile zu schreiben. Dieses Logfile soll dann von der zweiten Batch-Datei ausgelesen werden, um so die Quelldateien zu ermitteln. Zum schluss sollen die Dateien dann auf den Backupserver kopiert werden.

Meine drei Fragen sind:

1. Robocopy oder xcopy, was ist sinnvoller? Es dürfen keine Daten verloren gehen oder gelöscht werden.
2. Wie schreibe ich in das Logfile nur die Dateinamen, die kopiert wurden?
3. An den Schnittstellen Rechner darf sich kein User anmelden. Wie schaffe ich es, dass die Batch-Datei sich mit dem System-User an diesen Rechner anmeldet?

Ich hoffe ich habe es einigermaßen verständlich erklärt und ihr könnt mir weiterhelfen.

Mit freundlichen Grüßen

ShOxarrR
 
zu 2: mit > kannst Du die Ausgabe des Befehls in eine Datei umleiten. Mit >> hängst Du die Ausgabe hinten an die Datei ran, ohne die vorherige Ausgabe zu überschreiben.

zu 3: benutze den Windows eigenen Aufgabenplaner und wähle beim Erstellen des Jobs den Benutzer aus und "unabhängig von der Benutzeranmeldung ausführen" auswählen
 
zu 1.
Weder Robocopy noch XCopy haben ein Versionsmanagement und sind deshalb für Backups ungeeignet. Es sei denn, Du hast auf dem Ziel noch eine richtige Backup Software laufen.
 
Dein Vorhaben erscheint mir ein wenig zu kompliziert gedacht, außerdem müssen die Leute daran denken die Batch zu starten.

Meine einfache Lösung wäre vermutlich eine Batch auf dem Rechner mit den zwei Karten, die nichts weiter macht als Robocopy im Monitormodus aufzurufen


@echo off
Robocopy /E /COPYALL /MON:3 /MOT:10 \\Fileserver\Ordner \\Backupserver\\Ordner

Überwacht \\Fileserver\Ordner auf Änderungen, bei 3 geänderten Dateien oder nach 10 Minuten kopiere die geänderten Dateien inklusive aller Attribute nach \\Backupserver\\Ordner (überschreibe vorhandene)

Was passiert, wenn ein Benutzer einen Datei Löscht? Wird das ignoriert?
 
Zuletzt bearbeitet:
Hallo, vielen Dank erstmal für deine schnelle Antwort!

xCtrl schrieb:
zu 2: mit > kannst Du die Ausgabe des Befehls in eine Datei umleiten. Mit >> hängst Du die Ausgabe hinten an die Datei ran, ohne die vorherige Ausgabe zu überschreiben.

Deinen Ratschlag zu Frage 2 habe ich gleich mal ausprobiert. Es tritt aber dennoch genau das gleiche Problem auf wie vorher, mache ich es mit Robocopy habe ich einfach mal alles drin stehen von Verzeichnispfad bis hin zur Uhrzeit. Bei xcopy sieht das schon besser aus, aber auch da habe ich dann immer noch den Verzeichnispfad vorm Dateinamen stehen und unten ein "3 Dateien wurden kopiert" Kommentar. Hast du eine Idee wie man das wegbekommt?


xCtrl schrieb:
zu 3: benutze den Windows eigenen Aufgabenplaner und wähle beim Erstellen des Jobs den Benutzer aus und "unabhängig von der Benutzeranmeldung ausführen" auswählen

Wie meinst du das mit dem Aufgabenplaner? Die Batchdatei wird ja automatisch gestartet mit einem Befehl am Ende des ersten Batch Scriptes. Zum Zugriff auf die Datei muss man sich doch irgendwie anmelden oder nicht?

Freue mich über eine weitere Antwort,

ShOxarrR
Ergänzung ()

@echo off
Robocopy /E /COPYALL /MON:3 /MOT:10 \\Fileserver\Ordner \\Backupserver\\Ordner

Überwacht \\Fileserver\Ordner auf Änderungen, bei 3 geänderten Dateien oder nach 10 Minuten kopiere die geänderten Dateien inklusive aller Attribute nach \\Backupserver\\Ordner (überschreibe vorhandene)

Hört sich ganz gut an, aber dann werden ja alle 10min oder wenn 3 Dateien geändert werden, ALLE Dateien kopiert und nicht nur die von einem Rechner. Klar man könnte die Zeit verschieben, jedoch brauchen die Leute im Netzwerk 2 die Daten sofort nach Erstellung (der Backup Server dient nicht nur zur Sicherung sondern auch als Share für dieses Netz). Außerdem hätte man mit Robocopy nicht das Problem, dass geänderte Dateien überschrieben werden? Alle Dateien müssen archiviert werden.

Was passiert, wenn ein Benutzer einen Datei Löscht? Wird das ignoriert?
Wenn ein Benutzer Daten löscht, dann wird das seinen Grund haben und darauf wird auch nicht weiter geachtet. Jeder Benutzer arbeitet nur mit seinen eigenen Daten und ist somit auch selbst dafür verantwortlich.
 
Zuletzt bearbeitet:
Nein, nur die gänderten und von archivieren was bisher nicht die Rede.
Bei deiner Batchlösung wird übrigens auch überschrieben.

Das mit den kopierten Dateien gearbeitet wird, hast du auch am Anfang unterschlagen.

Das sind komplett andere Anforderungen.
 
Zuletzt bearbeitet:
Übrigens kann Robocopy nur das in der Befehlszeile angegebene Hauptverzeichnis überwachen, d.h. Änderungen in darin enthaltenen Unterverzeichnissen führen nicht zu einer Auslösung der Synchronisierung.

Wenn Ihr auch Archivierung benötigt und das Ganze effizient (z.B. blockweise, praktisch bei sehr großen Dateien), mit Echtzeitüberwachung ohne Eingriff/Auslösen von Userseite aus geschehen soll, schau Dir mal das Tool Bvckup2 an. Für die gebotene Leistung ist die Lizenz mit $20 für private und $40 für geschäftliche Zwecke nicht zu teuer, finde ich.
 
Die Nutzerverzeichnisse auf dem Fileserver bleiben immer gleich vom Namen her?

Robocopy kann so gestrickt werden, dass nur geänderte Dateien übertragen werden.

Sprich du legst auf jeden PC ein Script an, dass z.B. zeitgesteuert mit dem Aufgabenplaner auslöst.
Dieses gleicht den Datenbestand von Vorgegebenen Laufwerken/Ordnern mit dem Datenbestand auf dem Fileserver ab.
Wenn geänderte Dateien vorhanden sind, werden ausschließlich diese zum Fileserver übertragen.

Das zweite Script auf dem Schnittstellen-PC gleicht dann die Dateien in den Fileserververzeichnissen mit dem Bestand auf dem Backupserver ab.
 
Zurück
Oben