Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Warum aktualisiert Robocopy das Erstelldatum einer durch kopieren erzeugter Datei nicht?

Frage Entwicklung Batch & Shell

Mitglied: StheToolking

StheToolking (Level 1) - Jetzt verbinden

19.10.2014 um 09:26 Uhr, 1713 Aufrufe, 9 Kommentare

Guten Morgen Kollegen!

Aufgabe:
Ich möchte ein Zweigleisiges Backup-System aufbauen:
1. Einen "Ringpuffer". Hierbei werden Dateien vom Server auf dem Server vollständig und täglich kopiert, um z.B. änderungen in den Dateien reproduzieren zu können...
2. Ein inkrementelles "Net-Backup" auf einem externen Netzwerkteilnehmer.

Problem:
Das Problem bereitete mir der Ringpuffer:
Um alles was älter als 5 Tage tage ist per delage löschen zu können, muss ich beim kopiervorgand das Erstelldatum (createdate) auf das aktuelle (also der Zeitstempen an welchem das Kopieren stattfindet) stzen lassen.
Mit XCOPY klappt das super.
Mit ROBOCOPY nicht.
Warum?
Ich habe mit den untreschiedlichesten Parapetersätzen experimentiert (/COPY:D, etc..) egal was ich einstelle: ROBOCOPY schreibt das Erstelldatum der Quelle ins Ziel...
Das ist mir unbegreiflich.
Hat jemand fierzu eine Idee?
Es moss doch möglich sein ROBOCOPY hier das richtige verhalten beizubringen...
Ich würde gerne alleine schon wegen der protokollfunktion mit ROBOCOPY arbeiten...
Danke für eure Hilfe!


Script mit ROBOCOPY:

FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDate=%%c%%d%%b%%a%
for /f "delims=: tokens=1" %%i in ("%time%") do Set "Stunden=%%~i"
for /f "delims=: tokens=2" %%i in ("%time%") do Set "Minuten=%%~i"

REM ----------------------------------------------------
REM RINGPUFFER
REM ----------------------------------------------------

REM robocopy D:\copyflag\ E:\Backup\Ring\%cdate%\copyflag\ /MIR
REM robocopy D:\CAD\ E:\Backup\Ring\%cdate%\CAD\ /E /COPY:D /V /NP /LOG+:"E:\Backup\Ring\%cdate%\cad.log" /R:10 /W:30
REM robocopy D:\Sonstiges\ E:\Backup\Ring\%cdate%\Sonstiges\ /E /COPY:D /V /NP /LOG+:"E:\Backup\Ring\%cdate%\cad.log" /R:10 /W:30
REM robocopy D:\Dokumente\ E:\Backup\Ring\%cdate%\Dokumente\ /E /COPY:D /V /NP /LOG+:"E:\Backup\Ring\%cdate%\dokumente.log" /R:10 /W:30

REM ----------------------------------------------------
REM Inkrementell auf \\WS-MARQU0712
REM ----------------------------------------------------

REM robocopy D:\CAD\ \\WS-MARQU0712\Backup\Backup\CAD\ /E
REM robocopy D:\Sonstiges\ \\WS-MARQU0712\Backup\Backup\Sonstiges\ /E
REM robocopy D:\Dokumente\ \\WS-MARQU0712\Backup\Backup\Dokumente\ /E


Script mit XCOPY:
*
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDate=%%c%%d%%b%%a%
for /f "delims=: tokens=1" %%i in ("%time%") do Set "Stunden=%%~i"
for /f "delims=: tokens=2" %%i in ("%time%") do Set "Minuten=%%~i"

REM ----------------------------------------------------
REM RINGPUFFER VIA XCOPY
REM ----------------------------------------------------

xcopy D:\CAD\*.* E:\Backup\Ring\%cdate%\CAD\ /E /C /Y
xcopy D:\Sonstiges\*.* E:\Backup\Ring\%cdate%\Sonstiges\ /E /C /Y
xcopy D:\Dokumente\*.* E:\Backup\Ring\%cdate%\Dokumente\ /E /C /Y

REM ----------------------------------------------------
REM Inkrementell auf \\WS-MARQU0712 VIA ROBOCOPY
REM ----------------------------------------------------

REM robocopy D:\CAD\ \\WS-MARQU0712\Backup\Backup\CAD\ /E
REM robocopy D:\Sonstiges\ \\WS-MARQU0712\Backup\Backup\Sonstiges\ /E
REM robocopy D:\Dokumente\ \\WS-MARQU0712\Backup\Backup\Dokumente\ /E

*
Mitglied: DerSchorsch
19.10.2014 um 10:27 Uhr
Hallo,

Ich verstehe nicht ganz, wozu du ein verändertes Erstelldatum für die Löschaktion überhaupt benötigst? Laut deinem Skript machst du jedesmal eine vollständige Kopie in einen neuen Ordner. Du kannst doch einfach diese Ordner nach deren Alter aufräumen.

Was ich noch anmerken möchte: von dem inkrementellen Teil bin ich nicht so überzeugt. Du sammelst dort zwar alle Dateien, aber alte werden nicht gelöscht. Damit vermüllen die Backupornder und eine saubere Wiederherstellung wird schwieriger. Da hilft /MIR.
Zudem würde ich auch außerhalb des Servers mehrere Backupstände bevorzugen.
Man könnte z.B. einmal pro Woche einen komplettes Backup ziehen und unter der Woche nur die veränderten Dateien. Geht leicht mit dem Archive-Attribut, Robocopy-Optionen /A und /M.
z.B.
wöchentlich:
robocopy D:\CAD\ \\WS-MARQU0712\Backup\%cdate%-voll\CAD\ /E
täglich differentiell:
robocopy D:\CAD\ \\WS-MARQU0712\Backup\%cdate%-diff\CAD\ /E /A
oder inkrementell:
robocopy D:\CAD\ \\WS-MARQU0712\Backup\%cdate%-inkr\CAD\ /E /M

Zur Wiederherstellung das letzte Vollbackup zurückspielen und entweder den letzten Diff-Ordner oder alle Inkr-Ordner seitdem. Aufräumen kannst du auch hier nach dem Datum des Backupordners.

Gruß
Bitte warten ..
Mitglied: StheToolking
19.10.2014 um 11:14 Uhr
Hallo Schorsch,

danke für deine schnelle Antwort.
Alle Deine Anmerkungen sind richtig.
Die von mir desetzten Parameter sind alle so gewollt.

Ringpuffer:
Das cleanup im Ringpuffer übernimmt eine zweite batch mit delage:
"DelAge32 E:\Backup\Ring\*.* 5 /created /includeRO /recurse /rd"
Delage entscheidet anhand des Erstelldatums - deswegen soll diese ja durch ROBOCOPY aktualisiert werden.
Der Sinn des Vollständigen Ringpuffers ist nicht nur file-backup, sondern auch Benutzerfehler abzupuffern.
Wird z.B. eine Datei aus versehen überschrieben, liegt die vorherige version immer nuch im Ringpuffer.
Der Ringpuffer hat sich schon oft als wirksam erwiesen...

Inkrementell:
Der "Datenmüll" des Parameters /E ist gewollt.
/MIR gibt löschweitergaben ans Ziel - das ist nicht gewollt.
Das Inkrementelle Backup wird Quartalsweise gepackt und ausgelegert - Dann beginnt das Spiel von neuem...

Wie gesagt: XCOPY liefert ein Workaround - ich verstehe nur nicht warum ROBOCOPY nicht in der lage ist bei der Zieldatei das Erstelldatum des Kopiervorgangs zu setzen...
Gibt es vielleich einen Parameter den ich fasch anwenden?
/COPY:D und /COPY:DAT liefern beim Ringpuffer (also beim Vollbackup) keine unterschiedlichen ergebnisse: Immer wird Erstell- und Änderungsdatum der Quelldatei übernommen...

Danke & Gruß.
Bitte warten ..
Mitglied: GuentherH
19.10.2014 um 11:29 Uhr
/COPY:D und /COPY:DAT liefern beim Ringpuffer (also beim Vollbackup) keine unterschiedlichen ergebnisse: Immer wird Erstell- und Änderungsdatum der > Quelldatei übernommen

Na, ich würde mich gewaltig beschweren, wenn sich bei diesem Befehl die Dateiattribute verändert würden.

Versuche es einmal mit der Option /nocopy

LG Günther
Bitte warten ..
Mitglied: StheToolking
19.10.2014 um 12:47 Uhr
Hi Günther,

auch Dir Danke für dein schnelles Feedback!
/NOCOPY bringt bei Vollbackup leider nichts.
Hatte ich auch schon probiert...
/NOCOPY bring nur bei inkrementeller Nutzung und ggf. in Zusammenhang mit /PURGE Sinn. ;-(

Zu deiner Anmerkung:
Wenn in Windows eine Datei kopiert wird, so wird das Änderungsdatum bei der Zieldatei beibehalten und das Erstelldatum bei der Zieldatei neu gesetzt.
Ich denke das ist durchaus sinnvoll: Die Koipe der Datei wir ja auch "neu erstellt"
Der Explorer und die Konsolenprogramme COPY & XCOPY verhalten sich dabei immer gleich: Erstelldatum wird angepasst, Änderungsdatum nicht.
Nur ROBOCOPY verhält sich anders: Beide Datumsstempel werden aus der Quelldatei übernommen. Warum?

Ich kann nich nachvollziehen warum das nich zumindes eine parametrierbare Option ist (Oder ich bin nicht in der Lage diese zu finden)
Eigentlich möchte ich nur, das sich ROBOCOPY finsichtlich der Timestamps so verhält wie XCOPY oder der Rest von Windows

Gruß.

Steffen.
Bitte warten ..
Mitglied: rubberman
19.10.2014 um 17:30 Uhr
Hallo Zusammen.

Aus der robocopy.doc:
Note If file Data is copied, then file Timestamps are also copied.
Heißt, egal was du angibst, sobald eine Datei samt Inhalt kopiert wird, werden die Timestamps übernommen.
Hintergrund ist sicherlich die Tatsache, dass ROBOCOPY auch das Kopieren oder Ausschließen anhand des Alters einer Datei unterstützt und darum die ursprünglichen Timestamps der Dateien benötigt, um dies feststellen zu können.

Grüße
rubberman
Bitte warten ..
Mitglied: StheToolking
20.10.2014 um 05:52 Uhr
Danke, Rubberman.

Diese Doku hatte ich nicht gefunden ;-(
Heißt: Ich habe keine Chance ROBOCOPY auf meine Bedürfnisse hin zu trimmen.
Wenn das stimmt sehe ich zwei Möglichkeiten:

1. Die Timestamps nach dem Kopiervorgang manuel (per Batch nicht im Kopiervorgang selbst) neu zu setzen.
2. Mit XCOPY zu arbeiten.

Hat jemand noch "elegantere" Ideen?

Danke und Gruß.

Steffen.
Bitte warten ..
Mitglied: rubberman
20.10.2014, aktualisiert um 18:47 Uhr
Hallo Steffen,

ich kapier's nicht. Mache ein neues Vollbackup, lösche das vor 3 Tagen erstellte Backup und gut

zu 1. Es gibt Tools im Netz (suche nach "Touch for Windows" oder ähnlich) die das können. Zur Not kann ich dir auch mein eigenes Tool zur Verfügung stellen, falls du nichts brauchbares findest.

zu 2. Wenn dir die Daten etwas Wert sind, wirst du auf XCOPY verzichten wollen.


Grüße
rubberman (Namensvetter btw )
Bitte warten ..
Mitglied: StheToolking
20.10.2014 um 19:27 Uhr
Hi Rubbermann,

wie kann ich denn das vor x-tagen erstellte Backup ohne delage automatisiert loeschen?

Gruss.

Steffen.
Bitte warten ..
Mitglied: rubberman
20.10.2014, aktualisiert 21.10.2014
Hallo Steffen,

FORFILES sollte das regeln können. Ist (im Gegensatz zu DelAge) auch bereits an Bord.
forfiles /p "x:\wo deine backups liegen" /d -3 /c "cmd /c if /i @isdir==true ECHO rd /s /q @path"
Das ECHO sorgt dafür, dass die Kommandozeilen nur ausgegeben werden (nichts wird tatsächlich gelöscht). Wenn die richtigen Verzeichnisse gefunden werden, entferne es.
Ich glaube mich zu erinnern, dass keine Netzwerkpfade unterstützt werden. In dem Fall mappst du dir eben ein Netzlaufwerk mit NET USE ...

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...