(pseudo) incremental backup with different exclude lists using hardlinks and rsync
97df2c14de
After rsync, the destination directory's mtime reflects the modification time of its immediate contents. This patch overrides that and sets the mtime to the time that the backup finished. With this patch, the age of a backup can be assessed by looking at its mtime. The advantages of this are (1) that mtime can be preserved, via cp -a or rsync -a, when copying a backup repository to a new hard disk or a new machine and (2) that incorrect mtimes, such as might happen after a user meddles with his backup repository, can be, via touch, corrected. The disadvantage is that mtime for the immediate contents of the destination directory is lost. |
||
---|---|---|
conf | ||
contrib | ||
doc | ||
test | ||
tools | ||
.gitignore | ||
ccollect.sh | ||
COPYING | ||
CREDITS | ||
Makefile | ||
README | ||
release.sh |
-------------------------------------------------------------------------------- ccollect.sh, Nico Schottelius, 2005-12-06 -------------------------------------------------------------------------------- ccollect backups (local or remote) data to local or remote destinations. You can retrieve the latest version of ccollect at [0]. ccollect was inspired by rsnapshot [1], which has some problems: - configuration parameters has to be TAB seperated - you can not specify per source exclude lists - no per source pre/post execution support - no parallel execution - does unecessary moving of backup directories - I didn't like the configuration at all, so I used the cconfig style [2]. Please use tools/report_success.sh to report success, if you are successfully using ccollect. Have a look at doc/HACKING, if you plan to change ccollect. A small try to visualize the differences in a table: +---------------+-------------------------------------------------------------+ | What? | rsnapshot | ccollect | +---------------+-------------------------------------------------------------+ | Configuration | tab separated, needs | plain cconfig-style | | | parsing | | +---------------+-------------------------------------------------------------+ | Per source | | | | post-/pre- | no | yes | | execution | | | +---------------+-------------------------------------------------------------+ | Per source | | | | exclude lists | no | yes | +---------------+-------------------------------------------------------------+ | Parallel | | | | execution | | | | of multiple | no | yes | | backups | | | +---------------+-------------------------------------------------------------+ | Programming | perl | sh | | language | | (posix compatible) | +---------------+-------------------------------------------------------------+ | Lines of code | 6772 (5353 w/o comments, | 546 (375 w/o comments, | | (2006-10-25) | 4794 w/o empty lines) | 288 w/o empty lines) | +---------------+-------------------------------------------------------------+ | Age | Available since 2002/2003 | Written at 2005-11-14 | +---------------+-------------------------------------------------------------+ Included documentation: doc/ccollect.text Manual in text format doc/ccollect.html Manual in xhtml (generated) doc/ccollect-DE.text German manual in text format (externally maintained) doc/ccollect-DE.html German manual in xhtml (generated) doc/man/ccollect.text Manpage in text format doc/man/ccollect.man Manpage in manpage format (generated) -------------------------------------------------------------------------------- [0]: ccollect: http://unix.schottelius.org/ccollect/ [1]: rsnapshot: http://www.rsnapshot.org/ [2]: cconfig: http://nico.schotteli.us/papers/linux/cconfig/