(pseudo) incremental backup with different exclude lists using hardlinks and rsync
544a7d269e
User may optionally create a file rsync_failure_codes with a newline-separated list of rsync return codes that are to be regarded as complete failure. If rsync exits with such a code, then the backup will be marked for deletion during the next ccollect run (if delete_incomplete). I added documentation for this feature in doc/ccollect.text In my experience (yours may differ), two rsync exit codes that belong in this file are 12 and 255. I have seen 12 result from ssh errors and 255 result from a kernel module conflict. In both cases, the resulting backups were empty. Without the rsync_failure_codes option, such errors cause good backups to be deleted, as per c_interval, leaving behind the new empty backups. In the long run, we may want a different and more comprehensive method for analyzing rsync errors. In the short run, I find this option necessary. |
||
---|---|---|
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/