1

Here's the problem in a nutshell. We need to backup some SVN repositories, Samba shares, /home directories, postgresql nightly backups, etc. But the results are going to be written out to external USB drives (which are rotated weekly).

Mounting the USB drives is not a problem (autofs works well for this), and encrypting the drive with LUKS also works flawlessly. Currently we use rdiff-backup to backup the source files to a central server (total backup size is 800GB), then rsync the results out to the USB drive each night. This works very well, even though USB drives are slow, because only a small portion of the 800GB changes each day.

Needs:

  • Maintains the ownership / permissions / ACLs (rsnapshot does not do this).
  • Works well with USB drives which are mounted at different locations (/mnt/offsite/DRIVEA, /mnt/offsite/DRIVEB, ..., /mnt/offsite/DRIVEZ).
  • Only writes the changes to the USB drive each night (limited backup window). The combination of rdiff-backup and rsync works well for this.
  • Is smart enough that files where the file modification timestamp changed, but the contents didn't, does not cause the file to be rewritten in its entirety to the backup device.
  • Capable of doing diffs of files, so that only the new bits each night get stored.

Although we like rdiff-backup + rsync, we worry a lot that the rdiff-backup directory is fragile for anything other then the latest revision. Because older revisions inside the backup are done as a series of diffs and if one of those gets corrupted, you lose all older history.

tgharold
  • 609
  • 8
  • 19

1 Answers1

0

In my opinion, the rsnapshot backup tool can preserve even ACLs.

As local filesystem snapshots are handled by the rsync tool you need to customize rsync settings. By default, it uses "-a" argument which includes preserve owners/groups/permissions but not ACLs. If you want to preserve ACLs you need to pass it additional argument "-A".

There are two options in the rsnapshot configuration to customize it called rsync_short_args or rsync_long_args. The default behaviour can be changed this way:

rsync_short_args -aA
dsmsk80
  • 5,817
  • 18
  • 22