Efficient ssh/scp file content syncher
Ruby Emacs Lisp
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
test
.document
Gemfile
Gemfile.lock
LICENSE.txt
README.rdoc
Rakefile
VERSION
_project.el

README.rdoc

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).