synqa

Synqa is a simple file syncing tool that works over SSH, and is designed primarily for maintaining static websites. It uses a secure hash function to determine which files don’t need to be copied because the destination copy is already identical to the source copy.

It is available as a Ruby gem.

I wrote synqa for two main reasons:

  • I couldn’t get rsync to work on the combination of Cygwin and my hosting provider, and the rsync error messages were not very informative.

  • It was an opportunity to learn about SSH and how to use SSH and SCP with Ruby.

Installation

gem install synqa

Dependencies of synqa are:

  • Ruby 1.9.2

  • Ruby gems net-ssh and net-scp

Optionally:

  • An external SSH client. I use plink.

  • An external SCP client. I use pscp.

For some sample code, see examples/synga-useage.rb and examples/sample-rakefile.

Licence

Synqa is licensed under the GNU General Public License version 3.

Notes and Issues

  • Synqa has not been tested (or even designed to work) with file names containing whitespace or non-ASCII characters. Typically this doesn’t matter for many static websites, but it will reduce the tool’s usefulness as a general purpose backup tool.

  • Currently Synqa does not provide authentication options, on the assumption that you will use Pageant (which automagically provides “presented” keys for specified user/host combinations).