Das Backup für PCs und Laptops macht Backuppc sehr fein, aber für die Root-Server braucht es eine andere Lösung.
Duplicity macht gpg-verschlüsselte Backups und unterstützt die unterschiedlichsten Endpunkte wie ftp, rsync, scp, ssh, webdav[s] und auch Amazon S3. Hier mein Mini-Bash-Skript mit dem ich meine Server dorthin sichere:
#!/bin/bash
BDIRS="/etc /home /"
LOGDIR='/var/log/duplicity'
BAC="s3+http://ihr_bucket_name.s3.amazonaws.com"
# symmetrische verschluesselung fuer gpg
export PASSPHRASE='einelangeschwierigepassphrase'
export AWS_SECRET_ACCESS_KEY="amazon_aws_secret_access_key"
export AWS_ACCESS_KEY_ID="amazon_aws_access_key"
##### end of config ##########
BCLIENT=$(hostname);
for FULL_DIR in $BDIRS
do
DIR=$(basename $FULL_DIR)
if [ $DIR == "/" ]
then
DIR="root"
fi
EXCLUDELIST="/usr/local/etc/duplicity-exclude-$DIR.conf"
if [ -f $EXCLUDELIST ]; then
EXCLUDE="--exclude-filelist $EXCLUDELIST"
else
EXCLUDE=''
fi
duplicity remove-older-than 60D -v3 --force $BAC/$BCLIENT_$DIR >> $LOGDIR/$DIR.log
duplicity --full-if-older-than 30D -v3 $EXCLUDE $FULL_DIR $BAC/$BCLIENT-$DIR
>> $LOGDIR/$DIR.log
done
export PASSPHRASE=""
export AWS_SECRET_ACCESS_KEY=""
export AWS_ACCESS_KEY_ID=""
exit 0
Das Skript entstand in Anlehnung an ein Backup-Skript von Hetzner, wobei ich es noch weiter vereinfacht und auf S3 umgestellt habe. Backups werden 60 Tage aufbewahrt, wobei alle 30 Tage ein volles Backup gemacht wird. In den Zeilen 3 bis 9 sind die entsprechenden Anpassungen zu machen. Aufgerufen wird das Skript jede Nacht von cron:
root@yourhost:/root $ cat /etc/cron.d/duplicity # /etc/cron.d/duplicity: crontab fragment for backup # backup at 4 in the morning 55 3 * * * root /usr/local/sbin/backup.sh >/dev/null 2>&1 root@yourhost:/root $