snaprep

git mirror of https://ccx.te2000.cz/bzr/snaprep
git clone https://ccx.te2000.cz/git/snaprep
Log | Files | Refs

commit d0cb0c3d1ff47329425c2889cc1e1be68c31ae6d
parent a7eed0936afc128967bcb194b5fbb56938a2b359
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Fri, 21 Feb 2014 20:41:33 +0100

readme
Diffstat:
A.bzrignore | 1+
AREADME.rst | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/.bzrignore b/.bzrignore @@ -0,0 +1 @@ +empty diff --git a/README.rst b/README.rst @@ -0,0 +1,55 @@ +=================== +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