=== removed file '.bzrignore' --- .bzrignore 2014-02-21 19:41:33 +0000 +++ .bzrignore 1970-01-01 00:00:00 +0000 @@ -1,1 +0,0 @@ -empty === removed file 'README.rst' --- README.rst 2014-02-21 19:41:33 +0000 +++ README.rst 1970-01-01 00:00:00 +0000 @@ -1,55 +0,0 @@ -=================== -snapshot replicator -=================== - -Collection of scripts for creating, managing & replicating filesystem -snapshots, deduplicated using hardlinks. Written using rsync, POSIX sh & awk. - -This projects contains loose collection of scripts which can be chained to -allow arbitrary workflow. It's possible to restrict access both in push and -pull mode so in case one of machines is compromised no harm will come to -other, except for filling up the drive assigned to snapshots. Authentication -and encryption may be provided by SSH, TLS or any other layer that can handle -bidirectional data stream. - -filesystem layout ------------------ - -Each sequence of snapshots is stored inside a directory. Each snapshot is -in subdirectory whose name is unix timestamp of time the snapshot was taken, -written as decimal integer. This uniquely identifies the specific snapshot in -a sequence. Also in the snapshot sequence directory there is empty file named -same as the snapshot with ``.snapshot.`` prepended for every snapshot that has -been completed successfully. Snapshots lacking corresponding file are -considered unfinished and are not replicated. This empty file also usually -resides in the snapshot directory itself and serves same purpose for -shares specified in ``rsyncd.conf``. - -usage ------ - -You can use ``snap.push`` to replicate all snapshots in a sequence not present -in destination directory or ``snap.push.single`` to replicate single snapshot -only. - -local destination -~~~~~~~~~~~~~~~~~ - -Snapshot is saved directly in timestamped directory. Files for hardlinking are -looked in snapshot with highest timestamp. - -plain ssh / remote shell -~~~~~~~~~~~~~~~~~~~~~~~~ - -Currently unimplemented. Use daemon mode instead. See USING RSYNC-DAEMON -FEATURES VIA A REMOTE-SHELL CONNECTION in rsync manpage. - -todo ----- - -* when replicating locally give option to update ``./new`` directory. - -* plain ssh destination (call snap.rsync.pre and snap.rsync.post on remote - side) - -* old snapshot pruning / rotation