====== Ubuntu - Backups - rdiff backup ====== #!/bin/bash EXCLUDES="/tmp /var/tmp /proc /sys /selinux /media /dev/shm /mnt" OPTIONS="--exclude-device-files --print-statistics --force --ssh-no-compression" MAXAGE="1M" SRC="/" DST="server2.firma.pl::/backup-zdalny/server1" for i in $EXCLUDES; do OPTIONS="$OPTIONS --exclude $i" done rdiff-backup $OPTIONS $SRC $DST STATUS=$? msg="" if [ $STATUS -eq 0 ]; then msg="$msg Backup OK" rdiff-backup --force --remove-older-than $MAXAGE $DST if [ $? -eq 0 ]; then msg="$msg Cleaning OK" else msg="$msg Failed to remove older than $MAXAGE" fi else msg="$msg Failed to copy" fi echo $msg exit $STATUS ---- ===== Example usage ===== We have two systems: host1 and host2. * The script to launch the backup has to be on host1, which will connect to host2 by SSH and retrieves data from it. * Both computers must have the rdiff-backup script installed, preferably at the same version. ---- ===== Create a key pair to log in via SSH ===== On the host1 (the command is performed using the root account): sudo ssh-keygen -t rsa Save files to the default location; when prompted for a password hit enter (a blank password / no password). ---- ===== Copy the public key for host2 ===== scp .ssh / id_rsa.pub host2: ---- ===== Configure host2 ===== On host2 (command is performed using the root account) We create (if there is no .ssh directory already) and set it appropriate permissions: mkdir .ssh chmod 700 .ssh ---- ===== Put the public key of host1 in .ssh/authorized_keys ===== cat id_rsa.pub > .ssh/authorized_keys chmod 600 .ssh/authorized_keys ---- ===== Edit the .ssh/authorized_keys ===== In front of the key, but in the same line we add (ssh-rsa ...): command="/usr/bin/rdiff-backup --server" ssh-rsa ........... ---- ===== Configure SSHD ===== PermitRootLogin forced-commands-only StrictMode on The later command enforces permissions and .ssh .ssh/authorized_keys were respectively 700 and 600. ---- ===== Restart SSHD ===== /etc/init.d/sshd restart ---- ===== On the host1, we can do test ===== rdiff-backup --print-statistics host2::/etc /tmp/etc2 This will perform the backup without asking for a password.