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

Robocopy unter Beibehaltung alter Dateiversionen ausführen

Frage Linux Samba

Mitglied: ThomasH2

ThomasH2 (Level 1) - Jetzt verbinden

27.09.2012, aktualisiert 15:56 Uhr, 3371 Aufrufe, 9 Kommentare

Auf einem SAMBA NAS befinden sich die zu sichernden Dateien.
Gesichert werden soll nachts mit robocopy (rsync möchte ich nicht einsetzen)
auf einem Windows Server ohne die alten Dateien zu überschreiben

Bei den Files handelt es sich vorwiegend um .doc, .xls, .cpp und .h Files,
die unter Umständen täglich geändert werden und von denen ich eine Versionierung hätte.

D.h., Robocopy müsste die alten Files umbenennen (habe dazu keine Option gefunden)
oder die Sicherung in ein neues Verzeichnis mit dem Namen %date% schreiben:

Quellverzeichnis Zielverzeichnis(e)
\\NAS\DatenDVZ D:\DatenDVZ\20120920
D:\DatenDVZ\20120921
D:\DatenDVZ\20120922
..

Wie ein Verzeichnis mit dem aktuellen Datum zu erstellen ist, ist klar, aber wie verhindert
man, dass in den aktuellen Zielordner alle Files geschrieben werden?

Kopiert wird ganz normal in der Form (nur die relevanten Parameter angegeben):

robocopy "\\NAS\DatenDVZ" "D:\DatenDVZ\20120922" /S /FFT /NP /R:10 /W:30

Man könnte sicherlich auch nur die Dateien kopieren, die ein gesetztes Archivbit haben und selbiges nach dem Kopieren zurücksetzten. Diese Möglichkeit ist mir aber zu unsicher.


Danke ..
Mitglied: jens2001
27.09.2012 um 17:46 Uhr
Für sowas gibt es seit DOS-Zeiten das Archiv-Flag!
Bitte warten ..
Mitglied: ThomasH2
27.09.2012 um 18:02 Uhr
Zitat von jens2001:
Für sowas gibt es seit DOS-Zeiten das Archiv-Flag!

genau dieses Archivflag möchte ich nicht verwenden, wie bereits im Eröffnungsthread erwähnt.
Die Problematik warum man dieses Flag nicht immer nutzen kann, dürfte bekannt sein und soll hier nicht weiter diskutiert werden.
Bitte warten ..
Mitglied: pieh-ejdsch
27.09.2012, aktualisiert um 19:56 Uhr
moin,

Was spricht denn gegen die Verwendung des ArchivBit?
Werden diese etwa nach Aktualisierung der Daten wieder gelöscht?
Oder Hast Du noch eine andere Software, welche das Bit neusetzt?
Problem damit? Na erzähl mal!

Wenn Du das Bit nicht nutzen willst, dann nutze die Parameter in Robocopy
/TS /FP /Bytes /nC /nDL /nP
zur Ordenlichen Logerstellung.
Werte vor jedem Backupvorgang das Log (welches von der Letzten Vollsicherung bis zum letzten /a bzw. /m Backup ach das nutzt Du ja nicht! also zur letzten Teilsicherung geführt wurde) aus und entsprechend dem Alter bzw Größe sicherst Du die Daten.

Auf der ganz sicheren Seite bist Du dann, wenn Du jede potenziell zu sichernde Datei in allen Sicherungen abgleichst und danach in die Tagesicherung packst.

Wie soetwas Ansatzweise Auszuwerten ist, steht hier:
http://www.administrator.de/forum/Robocopy-Eine-Quelle-Mehrere-Festplat ...

Gruß Phil
Bitte warten ..
Mitglied: 60730
27.09.2012, aktualisiert um 20:12 Uhr
Moin phil

Warum so aufwendig?

Das geht viel einfacher, wenn das ziel eine winblowsserver buexse ist.

Wie?
Hab ich genauso vergessen wie der to den gruss und die os versionen.
Ps: ganz schoen schattig hier im kopie fred

Gruss
Bitte warten ..
Mitglied: pieh-ejdsch
27.09.2012, aktualisiert um 20:24 Uhr
moin Timo upps - ist ja alt Gewohnheit ich meine LimboS,

ich hab aber keine FinnBlowSäuferSchüssel und demnach keine Erfahrung damit.
gibt es davon ein Image zum Laden?

Die fehlende Begrüssung und der fehlende Abschied ist mir gar net aufgefallen.

Gruß Phil
Bitte warten ..
Mitglied: ThomasH2
28.09.2012 um 17:20 Uhr
Hallo und danke für Deine Hinweise ..

Zitat von pieh-ejdsch:
moin,

Was spricht denn gegen die Verwendung des ArchivBit?

Auf das NAS-Laufwerk greift Software zu, die das Archivbit setzt.

außerdem gibt es Programme, die das bit nicht korrekt setzen und ich möchte meine Hand nicht dafür in's Feuer legen, das das Archivbit bei > 1.Mio Files auch bei Netzwerkabbrüchen Stromausfällen etc immer zu 100% richtig steht. Dazu müsste das NAS-Filesystem transaktionsbasiert arbeiten.

googeln: archivbit wird falsch gesetzt ..

Werden diese etwa nach Aktualisierung der Daten wieder gelöscht?

nein

Oder Hast Du noch eine andere Software, welche das Bit neusetzt?

ja

Problem damit? Na erzähl mal!

Wenn Du das Bit nicht nutzen willst, dann nutze die Parameter in Robocopy
> /TS /FP /Bytes /nC /nDL /nP
zur Ordenlichen Logerstellung.
Werte vor jedem Backupvorgang das Log (welches von der Letzten Vollsicherung bis zum letzten /a bzw. /m Backup ach das
nutzt Du ja nicht!
also zur letzten Teilsicherung geführt wurde) aus und entsprechend dem Alter bzw Größe
sicherst Du die Daten.

==> Danke für den Tipp, so werde ich verfahren.

Wie im ersten Posting angegeben, habe ich
"nur die relevanten Parameter angegeben"

Die aktuellen Parameter sind momentan (noch nicht zu 100% an 4TB ausgetestet):
/TEE /E /FFT /NP /R:10 /W:30 /LOG:c:\RoboCopyLog-%date%.log /NP /NDL /XX

Damit habe ich im Log die Einträge: "Dateigröße" "neue Datei" und den "kompletten Pfad"
und kann entsprechend filtern und das Backup in einen tagesaktuellen Ordner sichern.


Auf der ganz sicheren Seite bist Du dann, wenn Du jede potenziell zu sichernde Datei in allen Sicherungen abgleichst und danach in
die Tagesicherung packst.

Wie soetwas Ansatzweise Auszuwerten ist, steht hier:
http://www.administrator.de/forum/Robocopy-Eine-Quelle-Mehrere-Festplat ...

Gruß Phil


PS: Ich vergaß zu erwähnen, dass der Sicherungsserver ein altes W2k0 Überbleibsel ist, das in einem anderen Brandschutzabschnitt steht. Das Gerät wird demnächst stillgelegt und durch ein SAN ersetzt.
Wäre dort VSS möglich, würde ich es auch nicht nutzen wollen/können, da auf dem System eine Textindizierung läuft. Ich wollte keine Romane schreiben und war etwas in Eile und habe die Etikette vergessen

Gruß Thomas
Bitte warten ..
Mitglied: 60730
28.09.2012, aktualisiert um 18:12 Uhr
Moin,

Naja dann....

Xcopy kann kopieren und so tun als ob.
Kann robocopy auch, aber nicht so schoen.

Diese kopieraktion schreibst du in eine datei.
Nutze xcopy /? Und du findest sowas wie d und l als parameter.

Damit hast du eine liste,welche dateien neuer sind und die klapperst du dann der reihe nach ab und das in einen neuen ordner.

Lach nein das ware zu einfach, du musst die dateien in einen ordner heute verschieben, die alter sind und erst dann die neuen hinlegen, denn der naechste tag kommt bestimmt.

Und damit da nix schief lauft, musst du einige tricks durchkaspern...
Skizze 
 
Quelle und ziel werden  "falsch" gemappt. 
Quelle hat laufwerk z und ziel q 
 
Xcopy erzeugt liste z nach q 
Laufwerke werden neu verbunden am besten, mit dem dir vergleichen, ob der datentraeger stimmt. 
Ein ordner heute wird erstellt und als laufwerk z gemappt. 
Anhand der xcopy liste werden die dateien von q nach z gemovt. 
Wenn fertig werden die laufwerke umgemappt oder gesubstet und robocopy q nach z

@ pietsch muss mir mal deine strategie durchlesen.

Gruss
Ps:
Ich wollte keine Romane schreiben und war etwas in Eile und habe die Etikette vergessen.
Tja und ich wollte vor laaaaaanger zeit mal nen roman schreiben und jetzt ist der Tommy J. aus K. Schon wieder schneller fertig als wie ich...
Bitte warten ..
Mitglied: 60730
28.09.2012, aktualisiert um 22:33 Uhr
salue,

nicht hybsch, sicherlich nicht schnell ohne robocopy, weil mein altes rausgekramtes libretto 100ct kein robocopy kann, aber laüft mit 233 mhz und ner pATA Platte...

01.
:para 
02.
subst q: d:\demo\quelle 
03.
subst z: d:\demo\ziel 
04.
for /f "tokens=1-3 delims=. " %%a in ('date /t') do set heute=%%c_%%b_%%a 
05.
 
06.
xcopy /y /l /s /d q:\*.* z:\>C:\script\ycopy\ycopy.txt 
07.
for /f "delims=" %%a in ('findstr ":" C:\script\ycopy\ycopy.txt') do ( 
08.
	echo d|xcopy "z:%%~pnxa" "z:\%heute%%%~pnxa" 
09.
	echo d|xcopy /y "q:%%~pnxa" "z:%%~pnxa" 
10.
11.
:end 
12.
rem die entsubster sind erst nach der demo dazugekommen... 
13.
subst q: /d 
14.
subst z: /d 
Z:\>C:\script\ycopy\yxopy.cmd 
 
Z:\>subst q: E:\demo\quelle 
 
Z:\>subst z: E:\demo\ziel 
Laufwerk bereits mit SUBST zugewiesen 
 
Z:\>for /F "tokens=1-3 delims=. " %a in ('date /t') do set heute=%c_%b_%a 
 
Z:\>set heute=2012_09_28 
 
Z:\>xcopy /y /l /s /d q:\*.* z:\ 1>C:\script\ycopy\ycopy.txt 
 
Z:\>for /F "delims=" %a in ('findstr ":" C:\script\ycopy\ycopy.txt') do ( 
echo d  | xcopy "z:%~pnxa" "z:\2012_09_28%~pnxa" 
 echo d  | xcopy /y "q:%~pnxa" "z:%~pnxa" 
 
Z:\>
nix gemacht -nix passiert


Z:\>echo hallo otto>>E:\demo\quelle\demo.txt
  • Dem Otto Hallo geschrieben und...
Z:\>C:\script\ycopy\yxopy.cmd 
 
Z:\>subst q: E:\demo\quelle 
Laufwerk bereits mit SUBST zugewiesen 
 
Z:\>subst z: E:\demo\ziel 
Laufwerk bereits mit SUBST zugewiesen 
 
Z:\>for /F "tokens=1-3 delims=. " %a in ('date /t') do set heute=%c_%b_%a 
 
Z:\>set heute=2012_09_28 
 
Z:\>xcopy /y /l /s /d q:\*.* z:\ 1>C:\script\ycopy\ycopy.txt 
 
Z:\>for /F "delims=" %a in ('findstr ":" C:\script\ycopy\ycopy.txt') do ( 
echo d  | xcopy "z:%~pnxa" "z:\2012_09_28%~pnxa" 
 echo d  | xcopy /y "q:%~pnxa" "z:%~pnxa" 
 
Z:\>( 
echo d  | xcopy "z:\demo.txt" "z:\2012_09_28\demo.txt" 
 echo d  | xcopy /y "q:\demo.txt" "z:\demo.txt" 
Z:\2012_09_28\demo.txt überschreiben (Ja/Nein/Alle)? d 
Z:\2012_09_28\demo.txt überschreiben (Ja/Nein/Alle)? 
Z:\2012_09_28\demo.txt überschreiben (Ja/Nein/Alle)? 
 
Z:\2012_09_28\demo.txt überschreiben (Ja/Nein/Alle)? 
 
Z:\2012_09_28\demo.txt überschreiben (Ja/Nein/Alle)? Q:\demo.txt 
1 Datei(en) kopiert 
  • gegenbeweis:
Z:\>fc /b Q:\demo.txt Z:\demo.txt 
Vergleichen der Dateien E:\DEMO\QUELLE\demo.txt und Z:\DEMO.TXT 
FC: Keine Unterschiede gefunden 
 
 
Z:\>fc /b Q:\quelle\demo.txt Z:\2012_09_28\demo.txt 
Vergleichen der Dateien Q:\QUELLE\demo.txt und Z:\2012_09_28\DEMO.TXT 
FC: E:\demo.txt ist länger als Z:\2012_09_28\DEMO.TXT 
 
Z:\>
Gruß
Bitte warten ..
Mitglied: pieh-ejdsch
29.09.2012 um 16:04 Uhr
moin Limbo.S,

Deine Variante setzt aber sehr viel Kapazität um.
ich hab mal ein bisschen daran herumgeschraubt.

Damit immer ein Delta nur vom letzten Backup aus geht.

01.
@echo off 
02.
setlocal 
03.
 
04.
 ::	echo on 
05.
 
06.
:para 
07.
set "Dateien=*.*" 
08.
set "Q=q:" 
09.
set "Z=z:" 
10.
subst %Q% d:\demo\quelle ||exit /b 1 
11.
subst %Z% d:\demo\ziel ||exit /b 2 
12.
 
13.
for %%i in (nextB lastDir ) do set "%%i=" 
14.
for /f "tokens=1-3 delims=. " %%a in ('date /t') do set heute=%%c_%%b_%%a 
15.
for /d %%i in ("Z:\????_??_??" ) do set "lastDir=%%~nxi" &for /f "tokens=1-3delims=_" %%i in ("%%~nxi") do set "nextB=%%j-%%k-%%i" 
16.
if not defined lastDir goto :Full 
17.
 
18.
xcopy /y /l /s /d:%nextB% %Q%\%Dateien% "%Z%\%lastDir%" |find /i "%Q%">"%temp%\%~n0%heute%.txt" 
19.
for /f usebackqdelims^= %%i in ("%temp%\%~n0%heute%.txt" ) do xcopy /LyD "%Q%\%%~pnxi" "%Z%\%lastDir%%%~pi*" |findstr /b "1 " >nul && xcopy /yD "%Q%\%%~pnxi" "%Z%\%heute%%%~pi*" |find /i "%Q%" 
20.
goto :end 
21.
 
22.
:Full 
23.
xcopy "Q:\%Dateien%" "Z:\%heute%\*" 
24.
 
25.
:end 
26.
rem die entsubster sind erst nach der demo dazugekommen... 
27.
subst %Q% /d 
28.
subst %Z% /d 
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...