====== Automatisches Backup ======
\\
===== Installation =====
sudo apt-get install duplicity
\\
===== Crontab =====
0 3 * * * root /opt/backups/backup_duplicity.sh >>/var/log/duplicity.log 2>&1
\\
===== Backup auf der Hetzner Storagebox =====
Das ganze läuft auf dem Hetzner Server und verbindet sich via SFTP.\\
In /root/.ssh/config:\\
# backup server
Host storagebox
HostName u157627.your-storagebox.de
User u157627
Port 23
IdentityFile /root/.ssh/storage_box
\\
Der SSH-Key liegt also in /root/.ssh/ und heißt "storage_box".\\
\\
Skript in /opt/backups/:\\
#!/bin/bash
#BACKUPDIR="/home/backups" # standard Pfad can be overwritten
STORAGEBOX="u157627@storagebox:/144/backups"
#export PASSPHRASE="fix404" # Password for encryption
SCRIPT_DIR="$(dirname "$0")"
SOURCE="$SCRIPT_DIR/backup_files.txt"
EXCLUDE="$SCRIPT_DIR/backup_exclude.txt"
VOLSIZE_IN_MB=200
#DATUM="$(date +%Y%m%d)" # Date for the monthly backup
#ZEIT="$(date +%H%M)" # time
# Check free space on storage box?
#freespace=$(df -k $BACKUPDIR |tail -1 |awk '{print $4}')
#if [ $freespace -lt 50000000 ]; then
# echo not enough space on backup device
# exit
#fi
# Sichern
duplicity --no-encryption --volsize $VOLSIZE_IN_MB --full-if-older-than 6D --exclude-filelist=$EXCLUDE --include-filelist=$SOURCE --exclude='**' / pexpect+sftp://$STORAGEBOX
now=`date`
echo "Finished backup at $now"
# Verifizieren
duplicity verify --no-encryption --exclude-filelist=$EXCLUDE --include-filelist=$SOURCE --exclude='**' pexpect+sftp://$STORAGEBOX /
now=`date`
echo "Finished verify at $now"
# Löschen
duplicity remove-older-than 1M --force --no-encryption pexpect+sftp://$STORAGEBOX
now=`date`
echo "Finished removing at $now"
\\
backup_files.txt:\\
/etc/**
/opt/**
/home/**
\\
backup_exclude.txt:\\
/home/backups/
/home/old_server_backups/
\\
===== Status des Backups überprüfen =====
Skript backup_status.sh:\\
#!/bin/bash
STORAGEBOX="u157627@storagebox:/144/backups"
# Status
duplicity collection-status pexpect+sftp://$STORAGEBOX