Rsync-and-rdiff-backup

From PrgmrWiki

Backup/migrate your system and data easily with rsync and rdiff-backup

rsync is the best utility for mirroring. rdiff-backup is very convenient for versioning in addition to mirroring, it is like a time machine which let you rollback your data state to any previous backup done and it keeps only data difference on the disk saving a lot of disk space for you.

I have created two scripts for uniform and convenient (IMHO of course) execution of above utilities. http://www.aulix.com/rsync-and-rdiff-backup-utils Both of them together with file sys_dirs.txt should be installed (copied) to /utils/ directory. sys_dirs.txt contains system directories excluded by default during system backup.

rsync.sh - a script for easy rsync operation

Syntax: /utils/rsync.sh OPERATION SRC [DEST] [NATIVE_OPTIONS]

SRC and DEST should look like [[USER@]HOST:]DIR

rback.sh - a script for easy rdiff-backup operation

Syntax: /utils/rback.sh OPERATION SRC [DEST] [NATIVE_OPTIONS]

SRC and DEST should look like [[USER@]HOST::]DIR

Both scripts expect following values for OPERATION argument:

system - backup excluding directories specified in sys_dirs.txt. It is useful for whole operation system backup.

data - backup data. Usefull when copying from ext3 to another ext3 partition.

data_ntfs - backup data without permissions and omitting hard links

compare - compares source and destination (dry-run)

verify - verifies rdiff-backup checksums

NATIVE_OPTIONS let specify additional options corresponding to rsync or rdiff-backup respectively

You can find more options inside scripts by yourself. Please note that delete and delete-excluded options are not used by default to avoid destination corruption by accidental mistake. RSync works better over sometimes unreliable internet channel. It is preferred to use RBack only in your local network or inside a single host.

Samples:

1. Backup a remote VPS system to your local /mnt/data/backup/vps/ directory:

/utils/rsync.sh system yourvps.com:/ /mnt/data/backup/vps/ -vi --exclude=/var/swap --delete --delete-excluded

2. Local server with a boot partition backs itself up to a remote storage-host:

BackupTo="storage-host:/mnt/data/backup/server1/"

/utils/rsync.sh system / $BackupTo -vi --delete --delete-excluded

/utils/rsync.sh data /boot $BackupTo -vi --delete

3. Script executed on storage-host to keep each version of your server1 backup on the same storage-host:

/utils/rback.sh data /mnt/data/backup/server1 /mnt/data/backup/server1.versions

Original text and scripts can be found at aulix.com/rsync-and-rdiff-backup