ooalbert
Goto Top

Batch für robocopy backup

Hi,

ich hab vor ein Laufwerk alle 14 tage zu sichern, bzw. zu sichern und gleichzeitig die quelle zu entleeren.

Beispielsweise:

alle dateien und verzeichnisse aus Laufwerk X die älter sind als 14 tage vom aktuellen datum her sollen nach laufwerk Z verschoben werden.

Ich hab mir mal robocopy angeschaut was zumindestens eine datums prüfung hat und so wie ich das verstanden habe eine 1.1 duplizierung der pfade ermöglichst samt inhalt.

Da ich aber aus den parametern nicht wirklich schlau werde wäre meine frage welche parameter brauch ich von Robocopy für solch einen vorgang und kann ich es zum verschieben der dateien und ordner bewegen oder wie macht man das am besten?

vielleicht würde es auch reichen wenn robocopy die ordnerstruktur erzeugt und nur die dateien verschiebt, dann könnte man ja auch nachträglich leere ordner suchen lassen und entfernen.

für die Datumsprüfung müßte doch /minage: yyyymmdd das richtige sein, das ignoriert alle dateien deren letze bearbeitung jünger ist als das datum.

Nachtrag:
ich hab mal etwas rumprobiert.

robocopy /E /MOVE /COPYALL R:5 /W:2 /MINAGE:20071125 P:\ X:\ /MIR

müßte doch das gewünschte machen oder? Kann man eigentlich die orginal erstellungsdaten beim kopieren, bzw. verschieben irgendwie erhalten und zwar der Ordner, die dateien werden ja korrekt über copyall gesetzt?

Wenn das Script auf dem Backuplaufwerk liegt und von da gestartet wird, gibt es da eine simple möglichkeit den entsprechenden Laufwerksbuchstaben zu finden ohne erst alle auszuprobieren? face-smile

Content-Key: 75163

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

Printed on: April 19, 2024 at 01:04 o'clock

Member: TuXHunt3R
TuXHunt3R Dec 04, 2007 at 13:15:16 (UTC)
Goto Top
Hallo ooAlbert

robocopy /E /MOVE /COPYALL R:5 /W:2 /MINAGE:20071125 P:\ X:\ /MIR

Das geht so nicht, und zwar aus folgenden Gründen:
  1. Wenn du /MOVE verwendest, kannst du nicht gleichzeitig /e verwenden. /MOVE verschiebt alle Dateien und Ordner des angegebenen Pfades
  2. /MIR kannst du ebenfalls nicht mit /MOVE kombinieren. Mit /MIR werden zwei Verzeichnisse gespiegelt.

Willst du denn die Daten im Zielverzeichnis jeweils überschreiben?
Member: ooAlbert
ooAlbert Dec 04, 2007 at 13:29:30 (UTC)
Goto Top
also ich wollte es eigentlich so das robocopy nach dateien und ordnern sucht die älter als 14tage sind, findet es diese sollen diese auf das ziel laufwerk verschoben werden.

Wenn ich aber "MIR" und "E" rauslasse verschiebt mir das programm nur die dateien im Root
Member: TuXHunt3R
TuXHunt3R Dec 04, 2007 at 18:43:19 (UTC)
Goto Top
Achtung!
Es gibt einen Unterschied zwischen /MOV und /MOVE. /MOV verschiebt nur die Dateien, /MOVE verschiebt auch die Subdirectories. Hier der Auszug aus der Robocopy-Hilfe:

/MOV :: MOVe files (delete from source after copying).
/MOVE :: MOVE files AND dirs (delete from source after copying).

Ich hab den Parameter /MOVE schon viel gebraucht und bei mir hat es immer geklappt. Sorry, dass ich frage, aber bist du dir sicher, dass du den Parameter richtig geschrieben hast?
Member: ooAlbert
ooAlbert Dec 04, 2007 at 21:04:28 (UTC)
Goto Top
ja bin ich:

robocopy /E /MIR /MINAGE:14 /MOVE /COPYALL /R:5 /W:2 G:\test01\ X:\ /LOG+:Log.txt

entferne ich die besagten parameter werden nur die dateien im root verschoben.
Member: TuXHunt3R
TuXHunt3R Dec 04, 2007 at 21:39:53 (UTC)
Goto Top
Ich hab deinen Robocopy-Befehl bei mir kurz getestet (Vista Business). Ich kanns nicht glauben, aber du hast recht. Bei der alten Version von Robocopy (aus dem Windows 2000 Resource Kit) war das anders, da hats funktioniert, so wie ich wollte.

Funktioniert denn bei dir diese Robocopy-Befehlszeile? Wenn ja, ist es ja soweit gut. Oder besteht noch ein Problem?
Member: ooAlbert
ooAlbert Dec 04, 2007 at 22:30:44 (UTC)
Goto Top
also es funktioniert so wie erwartet mit meiner befehlsfolge wobei ich durch probieren herausfand das ich das /E weglassen kann, leere verzeichnisse werden wohl durch das /Mir ebenfalls mitgenommen face-smile

ja ich benutz das auf einem XP, bzw. 2003 Server face-smile

das einzige was mich mal interessieren würde ob man das ziellaufwerk, was sich ja ändern kann, weil es ein usb-medium ist einfacher herausfinden kann wenn das ausführbare script auf selbigen ist oder ob das duchprobieren der laufwerke mittels prüfung auf eine spezielle datei das einzige ist? face-smile
Member: TuXHunt3R
TuXHunt3R Dec 05, 2007 at 12:16:54 (UTC)
Goto Top
das einzige was mich mal interessieren würde ob man das ziellaufwerk, was sich ja ändern kann, weil es ein usb-medium ist einfacher herausfinden kann wenn das ausführbare script auf selbigen ist oder ob das duchprobieren der laufwerke mittels prüfung auf eine spezielle datei das einzige ist?

Du willst also herausfinden, wie der aktuelle Laufwerksbuchstabe der USB-Platte ist?

Ich mache es immer so, dass ich mit einer FOR-Schleife alle Laufwerke durchteste, ob eine bestimmte Datei existiert. Wenn ja, starte ich den Kopiervorgang.
Member: ooAlbert
ooAlbert Dec 05, 2007 at 12:21:31 (UTC)
Goto Top
ja das mach ich auch face-smile mich würd nur interessieren, ob das auch anders geht, da die ausführbare scriptdatei ja direkt auf dem usb-gerät liegt
Member: TuXHunt3R
TuXHunt3R Dec 05, 2007 at 18:44:04 (UTC)
Goto Top
Sollte gehen, du kannst einfach variable Pfadangaben verwenden. Das folgende Beispiel mit dem Befehl cd springt z.B. einen Ordner nach oben und wechselt dann in einen anderen Ordner:
cd ..\Ordner

Folgendes Szenario, ich bediene mich dabei bei deines Robocopy-Befehls (nicht getestet):
Das Script liegt auf X: und wird von dir per Doppelklick gestartet. Die Ziel der Sicherung wäre der Ordner X:\Backup
robocopy /E /MIR /MINAGE:14 /MOVE /COPYALL /R:5 /W:2 G:\test01\ \Backup /LOG+:Log.txt

Ist nicht getestet, du musst es kurz ausprobieren.