Programm für Datenabgleich von Verzeichnissen (Transport, Datensicherung)

(DE) Anwendungen für Office, Multimedia und Spiele, Werkzeuge, Hilfsprogramme, etc
(EN) Applications for Office, Multimedia or Games, Tools, Utilities, e.g.
Martin Vieregg
Posts: 191
Joined: Tue 19. Aug 2014, 09:30

Programm für Datenabgleich von Verzeichnissen (Transport, Datensicherung)

Post by Martin Vieregg » Tue 13. Mar 2018, 10:39

Gibt es ein Kommandozeilenprogramm, das Verzeichnisse und Verzeichnisbäume auf zwei Laufwerken abgleicht? Also wechselseitig die jeweils neuesten Dateien kopiert und dabei schaut, welche der zwei Dateiversionen neuer ist, und dabei keine Dateien kopiert, die nicht geändert sind? Gibt es das jeweilige Programm auch unter Windows?

User avatar
ak120
Posts: 906
Joined: Thu 8. May 2014, 12:50
Location: Demmin

Post by ak120 » Tue 13. Mar 2018, 11:59

Bei Verwendung des entsprechenden Replikationsdienstes unter OS/2 sollte beachtet werden, daß eine Kompatiblität ab Windows 2000 Server nicht mehr gegeben ist. Entweder man nutzt die entsprechende Stapelverarbeitungsdatei aus dem Resource Kit zur Überbrückung oder greift gleich auf Programme von Drittanbietern zurück. SCCS und Co. sollten auch eine Versionsverwaltung in verteilten Umgebungen ermöglichen.

Andi B.
Posts: 418
Joined: Tue 24. Dec 2013, 16:40

Post by Andi B. » Tue 13. Mar 2018, 14:04

Sollte mit zweimal copy /u /s /... und Quelle Ziel vertauscht von 4os2 genau das machen. rsync kann dass sicher auch, aber da kenn ich die Syntax nicht.

User avatar
Frank Wochatz
Posts: 874
Joined: Sun 22. Dec 2013, 22:04
Location: Berlin

Post by Frank Wochatz » Tue 13. Mar 2018, 14:18

Ohne Windows / nur OS2: Ich mache das mit
dsync17.zip
. Es geht in eine Richtung. Für die andere Richtung würde man eine weitere dsync Umgebung bzw. Konfiguration mit entsprechend umgekehrten Pfadangaben benötigen.

Zu beachten ist: es löscht keine Dateien, d.h. wenn du im Quellverzeichnis eine Datei löschst, und dann dieses Verzeichnis mit einer früheren Spiegelung abgleichst (also das Spiegelbild aktualisierst), enthält die Spiegelung weiterhin die im Quellpfad gelöschte Datei. Veränderte Dateien werden aber natürlich überschrieben.
You do not have the required permissions to view the files attached to this post.
Last edited by Frank Wochatz on Tue 13. Mar 2018, 18:25, edited 1 time in total.

User avatar
ak120
Posts: 906
Joined: Thu 8. May 2014, 12:50
Location: Demmin

Post by ak120 » Tue 13. Mar 2018, 19:49

Hinweise zur Verwendung des Replicator-Dienstes finden sich im "OS/2 Warp LAN Requester Benutzerhandbuch" unter dem Abschnitt "Dateien nachbilden". Die Benutzeranmeldung und der gestartete Dienst erfordern keine zusätzliche Programminstallationen. Die Einstellungen für Integrität und Intervalle sind entsprechend den Anforderungen anzupassen.

Das läßt sich auch lokal mit den Peer-Diensten nutzen. Wenn in der ursprünglichen Frage mit "wechselseitig" eventuell auch "bidirektional" gemeint gewesen sein könnte, sei noch der Dienst "bisync", welcher auf Hobbes zu finden ist, genannt. Das Prinzip ist ähnlich, ebenfalls über entsprechende IBMLAN.INI-Einträge.

Martin Vieregg
Posts: 191
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Tue 13. Mar 2018, 21:52

Danke für Eure Kommentare, Gedanken und Empfehlungen. Mir ist jetzt klar geworden, dass es zwei ganz verschiedene logische Ansätze gibt: eine Backupfunktion, die in eine Richtung geht (von Original nach Kopie), wobei man dann auch Dateien im Backup löschen könnte, und dann ein gegenseitiges Aktualisieren in beide Richtungen. Kritisch wird es dann, wenn man eine Datei z. B. auf dem Transportstick und auf der Platte parallel geändert hat. Dann würde die Datei mit dem neueren Datum die mit dem älteren überschreiben. Optional könnte man statt dem Überschreiben noch ältere Versionen als Backups (z. B. *.001, *.002) stehenlassen und umbenennen, zumindest bei kleineren Dateien bis zu einer bestimmten Dateigröße. Einen Vergleich der Dateiinhalte würde ich nicht für erforderlich halten, sondern mich ganz am Datum orientieren.

Ich bin Autor des do.exe Kommandozeilenprogramms. Ich werde das Programm entsprechend erweitern, das mache ich immer wieder einmal (ist noch gar nicht alles veröffentlicht). Eine Menge Code habe ich ja im Prinzip für die Aufgabe schon, und das Programm wird es weiterhin für OS/2 und Windows (und eigentlich auch Linux) geben. Ihr könnt mir hier gerne Eure Kommentare schreiben, auf was ich noch achten sollte. Ich werde nicht allzuviel Parameter vorsehen.

Andi B.
Posts: 418
Joined: Tue 24. Dec 2013, 16:40

Post by Andi B. » Wed 14. Mar 2018, 14:00

...dass es zwei ganz verschiedene logische Ansätze gibt: eine Backupfunktion, die in eine Richtung geht (von Original nach Kopie), wobei man dann auch Dateien im Backup löschen könnte, und dann ein gegenseitiges Aktualisieren in beide Richtungen. Kritisch wird es dann, wenn man eine Datei z. B. auf dem Transportstick und auf der Platte parallel geändert hat. Dann würde die Datei mit dem neueren Datum die mit dem älteren überschreiben...
Ja und da kann es passieren, dass man eine Datei wissentlich/unwissentlich/leichtfertig/durch Dummheit/... zerstört und nach dem nächsten Lauf ist dann die Kopie auch hin. Darum mach ich auch einen Teil meiner Backups mit LuckyBackup (rsync) mit bis zu 10 Sicherungskopien. Zusätzlich zu den täglich inkrementellen mit 'rar'.

Wenn ich 'Konfliktbewältigung' haben will, dann mit smartsync. Kdiff3 könnte dafür auch elegant sein.

Martin Vieregg
Posts: 191
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Wed 14. Mar 2018, 22:07

Ich denke einfach mal laut - "Konfliktbewältigung": Ich habe ein Verzeichnis auf der Festplatte und eines auf dem Transportstick oder anderem Computer. Ein Konflikt entsteht dann, wenn man dummerweise eine Datei sowohl auf der Festplatte als auch auf dem Stick aktualisiert. In diesem Falle darf keine der Dateien überschrieben werden. Also müßte nach jedem Abgleich der aktuelle Stand der Dateien in eine Textdatei pro Verzeichnis geschrieben werden, und zwar einfach Dateiname und Schreibdatum (volle Genauigkeit mit Sekunden). Es gibt dann vier Datumsangaben zu vergleichen:

(1) Datum in der Protokolldatei Festplatte
(2) Datum in der Protokolldatei Stick
(3) Datum der Datei auf der Festplatte
(4) Datum der Datei auf dem Stick.

(1) und (2) sollte immer identisch sein, sonst ist etwas schiefgelaufen und es sollte gar nichts überschrieben werden.

Wenn nun (3) neuer ist als (1), d.h. die Datei auf Festplatte wurde seit dem letzten Abgleich aktualisiert, und (2) und (4) jeweils identisch ist (auf dem Stick hat sich nichts getan), dann kann die Datei auf dem Stick von der neueren Datei auf der Festplatte auf dem Stick überschrieben werden. Umgekehrt ist die Logik dann genauso, also (4) neuer als (2), und (1) und (3) identisch.

Wenn seitdem sowohl auf dem Stick als auch auf der Festplatte aktualisiert wurde, also (3)>(1) und (4)>(2), dann besteht ein Konflikt, der besonders behandelt werden muss. Also auf Stick und Festplatte wird z.B. ein Unterverzeichnis angelegt und dort die jeweils andere Datei abgespeichert, oder mit einer anderen Dateiendung.

Zu überlegen wäre noch, wie man genau bei Konflikten verfährt, evtl. mit wählbaren Optionen.
Was meint ihr, stimmt meine Logik?

User avatar
Frank Wochatz
Posts: 874
Joined: Sun 22. Dec 2013, 22:04
Location: Berlin

Post by Frank Wochatz » Thu 15. Mar 2018, 08:01

Meiner Ansicht nach ist das zu kompliziert, und zwei versch. Dateien will man ja grundsätzlich vermeiden, oder willst du die dann am Ende wieder zusammen basteln?

Dateien, die von mehren Rechnern aus bearbeitet werden, würde ich eher direkt von dem Transportmedium (oder besser ev. von einem Webspace) öffnen und im Anchluß direkt wieder dahin speichern. Eine Alternative wäre sonst noch, wenn es nur eine Person ist die an den Dateien arbeitet (zB. Büro und zuhause), wenn man immer die Dateien synchronisiert und das nie vergisst, damit das Problem garnicht erst auftritt.

Ohne dich bremsen zu wollen - ich weiß auch nicht ob sich lohnt so etwas neu zu entwickeln, Sync Tools gibt es tatsächlich wie Sand am Meer und Boardmittel gehen wie schon genannt auch. Ich verwende dsync weil es sich 20 Jahre bewährt hat, weil es gute Logs schreibt und weil man die Prozessorlast regulieren kann, was ich in einem Multitaskingbetrieb ganz schick finde.
Last edited by Frank Wochatz on Thu 15. Mar 2018, 08:02, edited 1 time in total.

Martin Vieregg
Posts: 191
Joined: Tue 19. Aug 2014, 09:30

Post by Martin Vieregg » Mon 19. Mar 2018, 21:44

Es wäre keine komplette Neuentwicklung, sondern nur eine Ergänzung eines eh vorhandenen Tools. Der Aufwand würde sich sehr in Grenzen halten, und ich könnte es genau so gestalten, wie ich es gerne hätte.