<?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');
?>
