kaineanung
Goto Top

Gibt es eine Möglichkeit eine Ordernstruktur mit Inhalten zu kopieren und gleichzeitig in der Qulle nur die Inhalte zu löschen?

Hallo Leute,

ich migriere bald von alten Fileserver auf einen neuen FS und möchte dies in 3 Schritten erledigen.
Ich will zuerst alles herüberkopieren, dann, wenn das abgeschlossen ist, will ich nochmals nur die geänderten Daten kopieren und auf dem Ziel ersetzen um dann im letzten Schritt die kompletten Daten in der Quell Ordnerstruktur zu löschen wobei ich die Ordnerstruktur beibehalten möchte.


Also:
Schritt 1:
Daten per Robocopy von alten FS (Quelle) auf neuen FS (Ziel) mitsamt Ordnerstruktur kopieren

Schritt 2:
Nochmals kopieren und zwar nur die geänderten Dateien die am Ziel die eventuell vorhandenen Dateien überschreiben soll
(Weil Schritt 1 lange dauern könnte und alles im 'laufenden Firmenbetrieb stattfinden soll)

Schritt 3:
An der Quelle Orderstruktur beibehalten aber alle Dateien löschen


So, Schrit 1 und 2 habe ich bereits zwei ROBOCOPY-Batchdateien erstellt die mir das genau so erledigen würden

1. robocopy \\Quellpfad D:\Zielpfad /e /zb /copy:DATSOU /MIR /r:3 /w:3 /log:c:\ROBOCOPY-Logs\file.log /V /NP
2. robocopy \\Quellpfad D:\Zielpfad /e /zb /copy:DATSOU /MIR /r:3 /w:3 /log:c:\ROBOCOPY-Logs\file.log /V /NP

Was ich aber jetzt noch dringend brauche ist eine Möglichkeit alle Dateien in einer Ordnerstruktur zu löschen wobei ich die Ordnerstruktur beibehalten möchte.
Der Hintergrund der Geschichte ist das ich nach einer gewissen Zeit sehen möchte wo noch automatisch Dateien abgestellt werden um dies an den neuen FS anpassen zu können.

Kann mir jemand sagen ob es dafür irgendwas gibt oder gar ROBOCOPY das mit entsprechenden Parametern schaffen kann?
Ich könnte auch eine BATCH erstellen, aber auch da bräuchte ich Unterstützung.

Kurz: Tool o.ä, um Inhalte in Ordnerstrukturen rekursiv zu löschen ohne die Ordner mitzulöschen?

Content-ID: 603170

Url: https://administrator.de/contentid/603170

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

Meierjo
Meierjo 09.09.2020 um 14:08:12 Uhr
Goto Top
Hallo

Der Robocopy Befehl bietet doch den Parameter /MOV (verschiebt Dateien, löscht Dateien nach dem Kopieren an der Quelle)

Schon probiert?
Gruss
Dilbert-MD
Dilbert-MD 09.09.2020 um 15:14:30 Uhr
Goto Top
kaineanung
kaineanung 09.09.2020 um 15:24:15 Uhr
Goto Top
Habe ich nicht Probiert. Aber löscht er da nicht dann auch gleich die Kopierten Verzeichnisse? Diese will ich nämlich behalten...

Ich habe mir zwischenzeitlich damit beholfen daß ich einfach ein

del /F /S /Q Quellordner

nutze. Den Parameter /S habe ich so nicht gekannt und der macht das was ich haben möchte.. denke ich..

Dafür habe ich in der gleichen Baustelle ein anderer Problem herausgefunden:

Der Befehl
robocopy \\srv-fs-alt\Team2\ \\srv-fs-neu\Team2\ /e /zb /copy:DATSOU /r:3 /w:3 /log:c:\ROBOCOPY-Logs\Team2_1.log /V /NP /NFL
löscht mir den Ziel-Ordner 'Team2' und erstellt diesen wieder neu. Die Berechtigungen die auf diesen Ziel-Ordner vorher gesetzt wurden sind dadurch weg und nur die vererbten sind da.


Ich habe im Ziel bereits diesen Team2-Ordner erstellt und die Berechtigung vergeben. Diese würde ich gerne beibehalten.
Wenn mir da jemand helfen würde wäre ich sehr dankbar...
kaineanung
kaineanung 09.09.2020 um 16:29:41 Uhr
Goto Top
Ich komme meinem Ziel immer näher.

1. Ich Führe Schritt 1 aus damit ich in Ruhe und während Arbeitszeit die ganzen Daten kopieren kann (wir machen das dann Abteilung für Abteilung).

2. Dann mache ich, kurz bevor ich die Daten löschen möchte, noch eine Synchronisation damit die Änderungen, die während des langwierigen Kopierens stattgefunden haben, berücksichtigt werden.

3. Ich möchte nun doch mit ROBOCOPY löschen und der Parameter /MOV macht tatsächlich genau das was ich will (-> Dateien löschen, Ordner bleiben). Nur habe ich hier ein Problem: er macht das im 3. Schritt nicht weil er die Daten auf dem Ziel korreterweise NICHT ersetzt, darum aber auch die nicht kopierten Quelldateien selber nicht löscht. Mache ich das mit dem /MIR Parameter ebenfalls das gleiche Ergebnis bis auf ein paar Ausnahmen (Daten die geändert wurden -> die werden kopiert und gelöscht).

So, was kann man machen damit ich im letzten Schritt sozusagen nur die Lösch-Funktion von ROBOCOPY nutzen kann?

Hintergrund ist: den sehr nützlichen Parameter /XD (Ordner excludieren und das sogar mit Wildcard) will ich auch beim Löschen nutzen.

Ich kann den Parameter /MOV jedoch nicht beim ersten mal nutzen da sonst diese Abteilung in der Zwischenzeit nichts tun darf. Der Vorgang kann auch sehr lange dauern und das will ich auch vermeiden.

Das Problem mit dem Ersetzen des Ordners habe ich leider ebenfalls immer noch...
Meierjo
Meierjo 09.09.2020 aktualisiert um 16:59:06 Uhr
Goto Top
Hallo


1. Ich Führe Schritt 1 aus damit ich in Ruhe und während Arbeitszeit die ganzen Daten kopieren kann (wir machen das dann Abteilung für Abteilung).

2. Dann mache ich, kurz bevor ich die Daten löschen möchte, noch eine Synchronisation damit die Änderungen, die während des langwierigen Kopierens stattgefunden haben, berücksichtigt werden.

???
Du machst doch im Schritt 1 und 2 genau dasselbe?
Ist ja logisch, dass dann die bereits kopierten Dateien nicht nochmals angefasst werden, und somit in der Quelle nicht gelöscht werden. Ist ja auch so gewollt!!

Das Problem mit dem Ersetzen des Ordners habe ich leider ebenfalls immer noch...
Ist auch logisch, wenn ein Ordner bereits besteht, und du ihn nicht neu erstellen willst, dass dann die Berechtigungen nicht angefasst werden

Gruss
kaineanung
kaineanung 10.09.2020 um 14:51:44 Uhr
Goto Top
Zitat von @Meierjo:
Das Problem mit dem Ersetzen des Ordners habe ich leider ebenfalls immer noch...
Ist auch logisch, wenn ein Ordner bereits besteht, und du ihn nicht neu erstellen willst, dass dann die Berechtigungen nicht angefasst werden

Gruss


Du hast da was falsch verstanden gehabt (liegt sicherlich an mir):
Es ist andersherum: ich habe bereits den Zielordner erstellt und mit Berechtigungen ausgestattet. Dieser Zielordner dient als Rootverzeichnis einer Gruppe und di Mitglieder dürfen darin ändern.
Nennen wir den Zielordner mal Gruppe1.
Jetzt kopiere ich vom alten Server per robocopy diese Gruppe1-Ordnerstruktur auf den neuen Server in den bereits erstellten Gruppe1-Ordner (der mit den bereits gesetzten Berechtigungen). Im Anschloss sind die Berechtigungen jedoch weg im Gruppe1-Zielordner.
robocopy löscht wohl den ursprünglichen Zielordner und legt ihn neu an aber natürlich ohne meine Berechtigungen sondern nur die geerbten.
Wie kann ich robocopy sagen: nimm den Ordner der da ist statt einen neuen zu erstellen?


Den Rest mit dem Kopieren, dann dem Synchronisieren und anschliessend Löschen mit ROBOCOPY habe ich hinbekommen. Man kann mit dem ROBOCOPY tatsächlich nachträglich das ganze File-Tree leeren.

Ich brauche nur noch die Lösung für das Ordnerproblem welches neu erstellt wird obwohl es bereits mit entsprechender Berechtigung vorliegt.
kaineanung
kaineanung 10.09.2020, aktualisiert am 15.09.2020 um 10:02:03 Uhr
Goto Top
Ich bin ein blöder Idiot....
Natürlich wird der Ordner mit neuen Berechtigungen bestückt, und zwar nicht weil er neu angelegt wurde sondern weil die Berechtigungen mit kopiert wurden dank "/COPY:DATSOU"-Parameter!

Ich danke euch für eure Hilfe.

Für alle die jemals auf der Suche nach ähnlichen Lösungen sind bei der Filemigration per ROBOCOPY und auszuschliessenden Unterordnern und der Gleichen:

1. Ordner kopieren ohne Berechtigungen mit zu kopieren (andernfalls Parameter /COPY:DATSOU mit übergeben)

Die Variablen entsprechend setzen.
robocopy %SRC_DIR% %DEST_DIR% /e /zb /r:0 /w:0 /XD "%EXCLUDE_DIR%" /log:%LOGPATH%_1.log /V /NP /NFL  

-> /XD "%EXCLUDE_DIR%" weglassen wenn es keine auszuschliessende Order gibt.
Wenn es die doch gibt kann man hier mit Platzhaltern bzw. Wildcards arbeiten.

2. Ordner synchronisieren. Der 1. Schritt, je nachdem wie die Datenmengen sind die kopiert werden, kann lange dauern. Wenn in der Zwischenzeit neue Daten hinzugekommen sind, vorhandene geändert wurden oder gelöscht wurden, so sollte man also 'nachbessern' was auch viel schneller geht als Schritt 1

robocopy %SRC_DIR% %DEST_DIR% /e /zb /MIR /XD "%EXCLUDE_DIR%" /r:3 /w:3 /log:%LOGPATH%_2.log /V /NP  

-> /XD wieder weglassen falls es beim 1. Schritt auch nicht vorhanden war

3. Daten auf der Quelle löschen dabei die Ordnerstruktur beibehalten. Ist vielleicht nicht notwendig, aber wir wollen sehen wo Daten eventuell autoamtsich abgestellt werden durch Programme, Jobs, Scripte usw. die wir nicht mit angepasst haben im Zuge der Migration. Somit ab und zu mal reinschauen ob die Datengrößen > 0 kb ist in den folgenden Tagen.

robocopy %SRC_DIR% %DEST_DIR% /E /COPYALL /XD "%EXCLUDE_DIR%" /log:%LOGPATH%_3.log /MOV /IS /IT  

-> auch hier /XD weglassen falls in Schritt 1 ebenfalls nicht vorhanden war.
Meierjo
Meierjo 11.09.2020 aktualisiert um 06:48:47 Uhr
Goto Top
Hallo

Ok, wenn dir geholfen werden konnte, fehlt nur noch das Wie kann ich einen Beitrag als gelöst markieren?

Gruss und schönen Freitag