aivilon
Goto Top

Übers Kreuz Synchronisieren

Ich möchte übers Kreuz Synchronisieren können, und wenn ichs hinkrieg, so, dass ich auch wieder Dateien löschen kann

Hallo Admins

Ich bin schon halb am verzweifeln. Ich habe mir mit Robocopy 2 Batch files geschrieben. Das eine Synct von A nach B, aber nicht von B nach A und löscht Daten die auf B erstellt wurden wieder.
Das zweite ist genau umgekehrt.
Also bis anhin alles wie erwünscht. Realisiert habe ich dies wie folgt

A nach B.cmd:
@echo off

	set LOG="C:\Users\b450wyp\Desktop\LOG\AonlytoB"  
	set Quelle="C:\Users\b450wyp\Desktop\Quelle\QuellezuZiel"  
	set Ziel="C:\Users\b450wyp\Desktop\Ziel\QuellezuZiel"  

	If not Exist %Quelle% md %Quelle%
	If not Exist %Ziel% md %Ziel%

:replicate
	for /F "tokens=1-4 delims=:., " %%a in ('time/T') do set TIME=%%a%%b%%c  
	
	@For /F "tokens=1,2,3 delims=., " %%A in ('Date /t') do (   
		Set Month=%%A
		Set Day=%%B
		Set Year=%%C
		SET parsedd=%%C%%B%%A
	)
	
	ren "%LOG%\LOG.log" "%parsedd%_%TIME%_Log.log"  
	
REM Pro Sekunde 1 ping
	ping 127.0.0.1 -n 10  >nul
	
REM /MON:1 /MOT:1 /R:10 /W:2
	If not Exist %LOG% md %LOG%
	robocopy %Quelle% %Ziel%  /MIR /COPYALL /PURGE /NP /LOG+:"%LOG%\LOG.log" /MON 1 /R:10 /W:2   

goto replicate

B nach A.cmd:
@echo off

	set LOG="C:\Users\b450wyp\Desktop\LOG\BonlytoA"  
	set Quelle="C:\Users\b450wyp\Desktop\Quelle\ZielzuQuelle"  
	set Ziel="C:\Users\b450wyp\Desktop\Ziel\ZielzuQuelle"  

	If not Exist %Quelle% md %Quelle%
	If not Exist %Ziel% md %Ziel%

:replicate
	for /F "tokens=1-4 delims=:., " %%a in ('time/T') do set TIME=%%a%%b%%c  
	
	@For /F "tokens=1,2,3 delims=., " %%A in ('Date /t') do (   
		Set Month=%%A
		Set Day=%%B
		Set Year=%%C
		SET parsedd=%%C%%B%%A
	)
	
	ren "%LOG%\LOG.log" "%parsedd%_%TIME%_Log.log"  
	
REM Pro Sekunde 1 ping
REM 	ping 127.0.0.1 -n 10  >nul
	
REM /MON:1 /MOT:1 /R:10 /W:2
	If not Exist %LOG% md %LOG%
	robocopy %Ziel% %Quelle% /MIR /COPYALL /PURGE /NP /LOG+:"%LOG%\LOG.log" /MON 1 /R:10 /W:2   

goto replicate

So weit so gut. Jetzt will ich aber das ganze noch so hinkriegen, dass sozusagen übers kreuz synchronisiert wird. Sprich, stellt euch die beiden Files oben fusioniert vor.
A syncronisiert nach B, und B syncht nach A, wenn ich bei A was hinzufüge wirds also nach B gesyncht, und wenn ich bei B was erstell nach A. Vieleicht denken nun die ersten, ja lässte A und B gleichzeitig laufen....dann gibts aber rein theoretisch das Problem, dass dann ein neues File in A nach B gesyncht wird und bei A gelöscht und im nächsten Schritt wieder nach A und bei B gelöscht.
Gibts da irgend ne zusammengebastelte möglichkeit mit Robocopy, oder weiss gerade jemand ein gut verständliches freeware programm?

PS: bin schon lange am googlen......

Grüsse aivilon

Content-Key: 173925

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

Printed on: April 16, 2024 at 11:04 o'clock

Member: kristov
kristov Sep 29, 2011 at 14:21:06 (UTC)
Goto Top
Hallo,

ob's einen Schalter für robocopy gibt, der das kann, ist mir nicht bekannt. Einen Ansatz für xcopy habe ich hier gefunden, ist auch schön beschrieben, sodaß Du damit zurechtkommen solltest.

kristov
Member: affabanana
affabanana Sep 29, 2011 at 16:14:47 (UTC)
Goto Top
Hallo Du

Für sowas gibts DFS beim Windows Server oder Rsync bei Linux Kisten.

Damit hast du auch etwas das funktioniert.

gruass affabanana
Member: pieh-ejdsch
pieh-ejdsch Sep 29, 2011 at 19:32:15 (UTC)
Goto Top
moin aivilon,

so ein Vorgehen benötigt mindestens ein CopyFlag bzw eine SyncList (syncpartnerschaft) welche erstmals eingerichtet werden müsste.

Mit gesetztem Bit:
  • Syncronisierte Dateien bekommen auf beiden Seiten ein Archivbit.
  • Dateien mit Archivbit werden von Dateien ohne Archivbit Überschrieben.
  • Dateien ohne Archivbit dürfen nicht gelöscht werden.
  • Dateien mit Archivbit werden gelöscht wenn der Spiegel fehlt.
  • Das setzt natürlich vorauss, dass das Archivbit bei einer Bearbeitung der Datei entfernt wird.

mit einer Syncliste:
wird Praktisch das CopyFlag in der Liste für jede syncronisierte Datei die Richtung eingetragen (oder beim Löschen aus der Liste genommen) - anstatt das Archivbit der Datei zu benutzen.

Gruß Phil