Inital commit

This commit is contained in:
Tilman
2011-10-26 10:11:42 +02:00
commit c0da376199
888 changed files with 44367 additions and 0 deletions
+143
View File
@@ -0,0 +1,143 @@
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/startup.php');
$pagetitle = 'SyncTool - directory synchronization tool';
$breadcrumb = '';
$keywords = 'Java, synchronization, backup, bidirectional';
// $description = '';
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/pageheader.php');
?>
<div class="content">
<div style="float: right; font-size: small;">
<a href="index.php">Deutsch</a>
</div>
<h1>SyncTool</h1>
<p>
This program sychronizes two directories. Files are compared by their size and date, hashing of the file content is optional. This qualifies the software for synchronization of large remote file systems. For a more detailed description of the motivation behind the project and a comparison to other tools available please read the corresponding <a href="http://siarp.de/node/231">blog article</a>.
</p>
<h2>Features</h2>
<ul>
<li>compares files by size and date, hashing is optional</li>
<li>log output can be forwarded via Jabber</li>
<li>compares large directories in reasonable time even if one of the directories lies in a remote file system</li>
</ul>
<h2>Attention, please!</h2>
<p>
The software is intended to work in batch mode and thus performs bidirectional synchronization only without conflict resolution of any kind. If a file was modified on both sides, the older one being dismissed and overwritten by the newer one. (It should be no problem, however, to add a feature like a --dont-overwrite-conflicting-files with a few lines of additional code.) That being said, the second thing you have to think about is that you need a Java JRE. The Open JDK 6 JRE works pretty well with the program on my server, just apt-get install default-jre.
</p>
<p>
Remember to backup your files, this software comes with ABSOLUTELY NO WARRANTY.
</p>
<h2>Usage</h2>
<p>
For available options see the help page:
</p>
<pre>
Usage: java -jar synctool-1.0.8.jar &lt;source path&gt; &lt;destination path&gt; [(-f|--dbfile) &lt;database file&gt;] [(-l|--logfile) &lt;logfile&gt;] [(-j|--jabber) &lt;jabber address&gt;] [(-r|--server) &lt;jabber server&gt;] [(-u|--user) &lt;jabber user&gt;] [(-p|--password) &lt;jabber password&gt;] [-d|--dry-run] [-h|--hashing] [-i|--ignore-directory-attributes] [-s|--silent] [--debug] [-?|--help]
&lt;source path&gt;
the source path
&lt;destination path&gt;
the destination path
[(-f|--dbfile) &lt;database file&gt;]
the path to the database file to use (default: synctool)
[(-l|--logfile) &lt;logfile&gt;]
the path for a logfile to write
[(-j|--jabber) &lt;jabber address&gt;]
send logging output as jabber message to the given address
[(-r|--server) &lt;jabber server&gt;]
the jabber server to connect to
[(-u|--user) &lt;jabber user&gt;]
the jabber user name used for logging in to the server
[(-p|--password) &lt;jabber password&gt;]
the jabber password used for logging in to the server
[-d|--dry-run]
perform a trial run with no changes made
[-h|--hashing]
generate MD5 file hashes for exact comparison
[-i|--ignore-directory-attributes]
do not copy attributes for directories
[-s|--silent]
do not print "Entering directory" and "No operation" messages
[--debug]
print debug messages
[-?|--help]
print help and exit
</pre>
<p>
Example:
</p>
<pre>
java -jar synctool.jar -i -s -l sychronization.log /media/hidrive /media/usb/localdrive
</pre>
<h2>Download</h2>
<p>
SyncTool is provided under the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a>:
</p>
<div style="background-color:#E0E0E0; padding: 4px; margin: 4ex; margin-left: 10ex; margin-right: 10ex;">
<p>
Copyright 2011 Tilman Walther
</p>
<p>
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.<br/>
You may obtain a copy of the License at
</p>
<p style="margin-left:2em;">
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
</p>
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
</p>
</div>
<p style="margin-top: 1em; text-align: center;">
<span style="font-weight: bold;">Remember to backup your files!</span>
</p>
<div style="background-color:#E0E0E0; padding: 2ex; padding-bottom: 1ex; text-align: center; margin: 2ex; margin-left: 10ex; margin-right: 10ex;">
<p style="font-size: 130%;">
Binary release: <a href="synctool.jar">SyncTool 1.0.8</a>
</p>
<p>
Sources: <a href="synctool-project.zip">Eclipse project archive</a>
</p>
</div>
<h2>Libraries used</h2>
<p>
This software was made possible by the following components:
</p>
<ul>
<li>The <a href="http://www.h2database.com">H2 database</a> to keep track of the files</li>
<li><a href="http://logging.apache.org/log4j/">log4j</a> for logging</li>
<li>The <a href="http://commons.apache.org/">Apache Commons</a> library</li>
<li><a href="http://martiansoftware.com/jsap/">JSAP</a> to parse the command line</li>
<li><a href="http://www.igniterealtime.org/projects/smack/">Smack</a> XMPP library</li>
</ul>
<p>
<a href="http://www.eclipse.org">Eclipse</a>, <a href="http://maven.apache.org/">Maven</a> and <a href="http://m2eclipse.sonatype.org/">M2Eclipse</a> were used for development.
</p>
</div>
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/pagefooter.php');
?>
+153
View File
@@ -0,0 +1,153 @@
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/startup.php');
$pagetitle = 'SyncTool - Ein Programm zum Synchronisieren von Verzeichnissen';
$breadcrumb = '';
$keywords = 'Java, Synchronisierung, Backup';
// $description = '';
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/pageheader.php');
?>
<div class="content">
<div style="float: right; font-size: small;">
<a href="index.en.php">English</a>
</div>
<h1>SyncTool</h1>
<p>
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 <a href="http://siarp.de/node/231">(englischen) Blog-Artikel</a>.
</p>
<h2>Features</h2>
<ul>
<li>rekursiver Vergleich von Dateien anhand von Größe und Änderungsdatum</li>
<li>optional können die Dateien anhand ihrer MD5-Hashes verglichen werden</li>
<li>sämtliche Dateien werden bidirektional synchronisiert</li>
<li>die Ausgabe kann zu Überwachungszwecken an einen Jabber-Account geschickt werden</li>
</ul>
<h2>Vorsicht, bitte!</h2>
<p>
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.
</p>
<p>
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.
</p>
<h2>Systemvoraussetzungen</h2>
<p>
Das Programm benötigt ein installiertes Java Runtime Environment. Erfolgreich getestet unter Mac OS X (Intel) und Debian Lenny (ARM, Open JDK 6).
</p>
<h2>Benutzung</h2>
<p>
Verfügbare Parameter:
</p>
<pre>
Usage: java -jar synctool-1.0.8.jar &lt;source path&gt; &lt;destination path&gt; [(-f|--dbfile) &lt;database file&gt;] [(-l|--logfile) &lt;logfile&gt;] [(-j|--jabber) &lt;jabber address&gt;] [(-r|--server) &lt;jabber server&gt;] [(-u|--user) &lt;jabber user&gt;] [(-p|--password) &lt;jabber password&gt;] [-d|--dry-run] [-h|--hashing] [-i|--ignore-directory-attributes] [-s|--silent] [--debug] [-?|--help]
&lt;source path&gt;
das Quellverzeichnis
&lt;destination path&gt;
das Zielverzeichnis
[(-f|--dbfile) &lt;database file&gt;]
Pfad zur Datenbank. (Wird neu angelegt, sofern nicht vorhanden.) (default: synctool)
[(-l|--logfile) &lt;logfile&gt;]
Logdatei, in die sämtliche Programmausgaben geschrieben werden
[(-j|--jabber) &lt;jabber address&gt;]
sendet sämtliche Ausgaben an den angegebenen Jabber-Benutzer
[(-r|--server) &lt;jabber server&gt;]
Jabber Server
[(-u|--user) &lt;jabber user&gt;]
Jabber Benutzername
[(-p|--password) &lt;jabber password&gt;]
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
[-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"
[--debug]
Debugging-Informationen ausgeben
[-?|--help]
Hilfe ausgeben und das Programm beenden
</pre>
<p>
Beispiel:
</p>
<pre>
java -jar synctool.jar -i -s -l sychronization.log /media/hidrive /media/usb/localdrive
</pre>
<h2>Download</h2>
<p>
SyncTool wird unter der <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a> zur Verfügung gestellt:
</p>
<div style="background-color:#E0E0E0; padding: 4px; margin: 4ex; margin-left: 10ex; margin-right: 10ex;">
<p>
Copyright 2011 Tilman Walther
</p>
<p>
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.<br/>
You may obtain a copy of the License at
</p>
<p style="margin-left:2em;">
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
</p>
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
</p>
</div>
<p style="margin-top: 1em; text-align: center;">
<span style="font-weight: bold;">Denken Sie unbedingt daran, Sicherungskopien Ihrer Dateien zu erstellen!</span>
</p>
<div style="background-color:#E0E0E0; padding: 2ex; padding-bottom: 1ex; text-align: center; margin: 2ex; margin-left: 10ex; margin-right: 10ex;">
<p style="font-size: 130%;">
ausführbares Jarfile: <a href="synctool.jar">SyncTool 1.0.8</a>
</p>
<p>
Programmquellen: <a href="synctool-project.zip">Eclipse-Projekt</a>
</p>
</div>
<h2>Verwendete Programmbibliotheken</h2>
<p>
Die Software setzt die folgenden Komponenten ein:
</p>
<ul>
<li>die Datenbank <a href="http://www.h2database.com">H2</a></li>
<li><a href="http://logging.apache.org/log4j/">log4j</a></li>
<li>die <a href="http://commons.apache.org/">Apache Commons</a> Bibliothek</li>
<li><a href="http://martiansoftware.com/jsap/">JSAP</a> zum Parsen der Parameter</li>
<li><a href="http://www.igniterealtime.org/projects/smack/">Smack</a> XMPP-Bibliothek zum Versenden der Jabber-Nachrichten</li>
</ul>
<p>
Die Entwicklung erfolgte mit Hilfe von <a href="http://www.eclipse.org">Eclipse</a>, <a href="http://maven.apache.org/">Maven</a> und <a href="http://m2eclipse.sonatype.org/">M2Eclipse</a>.
</p>
</div>
<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/pagefooter.php');
?>
Binary file not shown.
Binary file not shown.