SyncTool
Dieses Programm synchronisiert zwei Verzeichnisse. Dabei werden die Dateien anhand ihrer Größe und des Änderungsdatums verglichen, optional kann eine Hashsumme des Inhalts mit einbezogen werden. Die Zielsetzung während der Entwicklung war eine Optimierung für große Verzeichnisbäume in Remote-Dateisystemen. Eine ausführliche Beschreibung der Beweggründe zur Entwicklung des Programms inklusive eines Vergleichs mit anderen Tools findet sich im (englischen) Blog-Artikel.
Features
- rekursiver Vergleich von Dateien anhand von Größe und Änderungsdatum
- optional können die Dateien anhand ihrer MD5-Hashes verglichen werden
- sämtliche Dateien werden bidirektional synchronisiert
- die Ausgabe kann zu Überwachungszwecken an einen Jabber-Account geschickt werden
Vorsicht, bitte!
Die Software wurde für unbeaufsichtigte Stapelverarbeitung entwickelt, deshalb gibt es keine spezielle Behandlung von kollidierenden Dateiänderungen. Falls eine Datei seit der letzten Synchronisierung auf beiden Seiten geändert wurde, überschreibt das Programm die ältere mit der neueren. (Grundsätzlich könnte das Programm aber problemlos um eine entsprechende Funktion erweitert werden.
Erstellen Sie Sicherungskopien Ihrer Dateien vor dem Einsatz des Programms! Die Software wird kostenlos und ohne jegliche Gewährleistung und Garantie überlassen. Insbesondere wird weder Fehlerfreiheit, noch die Verwendbarkeit für einen bestimmten Zweck garantiert.
Systemvoraussetzungen
Das Programm benötigt ein installiertes Java Runtime Environment. Erfolgreich getestet unter Mac OS X (Intel) und Debian Lenny (ARM, Open JDK 6).
Benutzung
Verfügbare Parameter:
Usage: java -jar synctool-1.0.8.jar <source path> <destination path> [(-f|--dbfile) <database file>] [(-l|--logfile) <logfile>] [(-j|--jabber) <jabber address>] [(-r|--server) <jabber server>] [(-u|--user) <jabber user>] [(-p|--password) <jabber password>] [-d|--dry-run] [-h|--hashing] [-i|--ignore-directory-attributes] [-s|--silent] [--debug] [-?|--help] <source path> das Quellverzeichnis <destination path> das Zielverzeichnis [(-f|--dbfile) <database file>] Pfad zur Datenbank. (Wird neu angelegt, sofern nicht vorhanden.) (default: synctool) [(-l|--logfile) <logfile>] Logdatei, in die sämtliche Programmausgaben geschrieben werden [(-j|--jabber) <jabber address>] sendet sämtliche Ausgaben an den angegebenen Jabber-Benutzer [(-r|--server) <jabber server>] Jabber Server [(-u|--user) <jabber user>] Jabber Benutzername [(-p|--password) <jabber password>] Jabber Passwort [-d|--dry-run] führt einen Testlauf ohne Änderungen am Dateisystem durch [-h|--hashing] zusätzlich MD5-Hashsummen der Dateien berechnen und vergleichen [-o|--rolling-logfile] Logdatei rollierend mit maximal 10 MB erzeugen [-i|--ignore-directory-attributes] Attribute von Verzeichnissen, die auf beiden Seiten existieren werden nicht angeglichen [-s|--silent] verzichtet auf Ausgabe der Meldugen "Entering directory" and "No operation for file" [--check-file-exists] Synchronisation nur durchführen, wenn die angegebene Datei existiert [--debug] Debugging-Informationen ausgeben [-?|--help] Hilfe ausgeben und das Programm beenden
Beispiel:
java -jar synctool.jar -i -s -l sychronization.log /media/hidrive /media/usb/localdrive
Download
SyncTool wird unter der Apache License 2.0 zur Verfügung gestellt:
Copyright 2011 Tilman Walther
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Denken Sie unbedingt daran, Sicherungskopien Ihrer Dateien zu erstellen!
ausführbares Jarfile: SyncTool 1.2.1
Programmquellen: Eclipse-Projekt
Verwendete Programmbibliotheken
Die Software setzt die folgenden Komponenten ein:
- die Datenbank H2
- log4j
- die Apache Commons Bibliothek
- JSAP zum Parsen der Parameter
- Smack XMPP-Bibliothek zum Versenden der Jabber-Nachrichten
Die Entwicklung erfolgte mit Hilfe von Eclipse, Maven und M2Eclipse.