Alaric from Kitten Technologies has written a nice backup system called ugarit. It has been inspired by plan9's venti block storage server and provides several (experimental) backends, such as venti like arenas (called logfiles), Amazon's S3 cloud service and sftp (planned). A simple session looks like this:
$ ./ugarit snapshot ugarit.conf firstone . Archiving . to tag firstone... Root hash: 172c5ac1dbd70461dc6f0b8c9a503999b455808596410b2c Successfully archived . to tag firstone Snapshot hash: c8a28f188ca4c00c40d44d9951d33a12ee21fa2e13f99a2c
The backup client also comes with a ftp like ui client, so you can walk around the nice tree:
$ ./ugarit explore ugarit.conf > ls firstone <tag> > cd firstone /firstone> ls 2009-06-21 21:12:16 <snapshot> current <snapshot> /firstone> cd current /firstone/current> ls .svn <dir> test.scm <file> ugarit.meta <file> ugarit-core.scm <file> backend-devtools.scm <file> backend-cache.scm <file> posixextras.scm <file> ugarit.setup <file> ugarit.scm <file> backend-fs.scm <file> ugarit.html <file> ugarit-core.import.scm <file> ugarit-core.so <file> ugarit-core.import.so <file> ugarit <file>
All this goodness has been implemented in Chicken Scheme which provides a nice backend to C (as it is a scheme to C compiler) for FFI. Chicken Scheme builds nicely on OpenBSD (at least for SHARED_ONLY atm, we sent the port update to its maintainer).
Diffs are on the way to have this integraded in the chicken4 egg index, so it will be a matter of
chicken-install ugarit
soon. Until this is possible you can grab a a collection of diffs against the Chicken3 eggs repo. Username: anonymous no password.
We will continue to play with this nice piece of software so stay tuned for further updates!
Thanks to Alaric Snell-Pym for all his support and help!