FileSink ('Sink' as in Synchronization)


FileSink is a file synchronization and replication application written in Java published under GNU GPL v2. The file operations of this application currently support locally mounted file systems only, and SFTP connections. In order to synchronize files with remote destinations, those destinations must appear to be locally mounted in order for this application to work correctly, or connected to via an SFTP connections.

FileSink provides a command line interface in order to keep scheduling and configuration of the application execution simple. Setting up separate configuration files for different operations will make life easier. An example configuration file is provided in the root directory of this distribution named sample.xml.

Consult the Javadoc documentation for specific API information.

Requirements to Use

Filesink has been developed and tested using the Sun Java SDK 5.0. I would suggest using this platform to use this application. This application will not work with any version of the SDK lower then 5.0.

Filesink includes the Java Network Browser library. This library is currently required for remote SFTP connections. Hopefully this library will be useful as well when development of a GUI ever takes place. You do not need to download this library, it is included in the Filesink download. This library provides SFTP connections via SSHTools.

Why, why, why?!?

"Why would you reinvent the wheel? Why bother? There are plenty of other file synchronization applications available, why should I use yours?"

First, I don't care if you use this software or not, but if you do download it and are using it, EMAIL ME! Second, I am doing this for me. I enjoy software, I enjoy learning, and that is that... almost. I also have a need/desire to maintain multiple copies of my files across systems, and need/desire to keep those files in sync. Most software I came across I either didn't trust, or was overly complex. So I thought, why not just make my own.

Downloading, Installing & Running

Visit the download section on the project page to download the latest official release.

You can also browse the Subversion repository to view the most current version of the source. To check out the most recent version of the source, you will need the SVN client software. Try svn co filesink to check out.

Source code of this application is available via the SVN repository and for download. The "tags" directory of the SVN repositroy is your best bet you get the actual source code for a release.

To build the source file releases, check out the tagged version of the code you want. The trunk will contain the most recent version of the code, but it may or may not work. Or just download the release source. Use the build.xml to build the source using Ant. The default target in the build is to compile. To generate a working JAR of the code, use the jar target task. You might have to change the values in the build file to fit your environment. For example, if your have compiler is in a different loction, you must give the correct path.

To run this application, unpack the downloaded archive, and change to that directory. There is a jar file in the root of the created directory that will be filesink-version-bin.jar. To run this file, execute:

$ java -jar propertiesfile.xml sourcedirectory destinationdirectory

The propertiesfile.xml contains all your settings, sourcedirectory and destinationdirectory are directories, they must exist. If connecting to a remote destination, the path should be relative to the machine you are connecting too.


Contact Information

Please contact Terry at tepie at users dot sourceforge dot net with any comments, suggestions, bugs, or jokes. I would like to hear any feedback, suggestions, problems, etc. If you so much as looked at this page and have a reaction, let me know about it.


GNU Logo Logo