(pseudo) incremental backup with different exclude lists using hardlinks and rsync
Find a file
jll2 97df2c14de Update the destination directory's mtime with each backup.
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.
2009-06-25 16:20:00 -07:00
conf add testsource for &-test 2009-02-02 11:49:12 +01:00
contrib Add README for contrib 2009-06-21 00:15:21 +02:00
doc Create rsync_failure_codes option. 2009-06-24 17:01:14 -07:00
test update exec.sh 2008-03-14 09:25:04 +01:00
tools continue check script 2008-07-23 11:31:01 +02:00
.gitignore Ignore texi/fo 2007-08-17 11:28:05 +02:00
ccollect.sh Update the destination directory's mtime with each backup. 2009-06-25 16:20:00 -07:00
COPYING Upgrade to GPLv3 2007-08-16 22:21:56 +02:00
CREDITS add automatic backup manager CREDITS 2009-06-21 00:50:04 +02:00
Makefile add ccollect_list_intervals.sh to the tools 2009-02-02 12:14:34 +01:00
README [DOC] give some hints on how to hack ccollect 2009-06-20 21:00:21 +02:00
release.sh update release script 2009-02-02 12:39:42 +01:00

--------------------------------------------------------------------------------
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/