Voraussetzungen:
2 Server / Rechner mit
Debian Lenny / Etch oder ein vergleichbares System
Rsync ( für inkrementelle Backups), SSH ( zur Übertragung ), SUDO (Rechte)
Eine einigermaßen "dicke" Leitung wenn von Server zu Rechner bei großen Datenmengen
Und los gehts:
1. Softwarepakete auf dem Backuprechner und dem Webserver installieren
apt-get update
apt-get upgrade
apt-get install ssh openssh sudo rsync
2.Auf dem Backuprechner einen Benutzer für die Datensicherung einrichten
Useradd -m -p* backupuser
passwd backupuser
3. Mit Visudo den Prozess automatisieren
visudo
und das einfügen:
backupuser ALL=(root)NOPASSWD:/usr/bin/rsync
4. SSH Keys auf dem Webserver erstellen
ssh-keygen -t dsa -b 1024 -f ~/rsync-key
5. Keys auf Backupserver kopieren
Wir haben nun 2 Datein rsync-key, rsync-key.pub in unserem /root Verzeichnis auf dem Webserver, diese müssen nun auf dem Backuprechner in unseren home ordner /home/backupuser
Ich habe dazu einfach die Dateien auf dem Backuprechner erstellt und den Inhalt vom Webserver kopiert
cd /home/backupuser
pico rsync-key
pico rsync-key.pub
und dann kommt noch ein wenig Rechteverteilung die wir einfach übernehmen
mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/rsync-key.pub ~/.ssh/
cd ~/.ssh/
touch authorized_keys
chmod 600 authorized_keys
cat rsync-key.pub >> authorized_keys
6. Der letzte Schritt in unserem 15 Minuten Tutorial, das Herzstück, unser Backupscript backup.sh
# Linux Backup mit Rsync und SSH
#!/bin/sh
echo "###"
echo "Backupprozess gestartet"
BACKUPDIR=/var/www/
BACKUPORDNER=/home/backupuser/datensicherung/
WEBSERVERIP=192.168.2.100 #müsst ihr natürlich ersetzen^^
echo "Verbinde mit Remotesystem und starte Backup - Dieser Schritt kann je nach Anbindung einige Minuten bis mehrere Stunden dauern"
rsync -a -z -e "ssh -i /root/rsync-key" --rsync-path='sudo /usr/bin/rsync' --stats --delete
# --exclude=/hanswerner/ #Hier könntet ihr nach belieben --exclude einfügen, es gehen auch mehrere
$BACKUPDIR backupuser@$WEBSERVERIP:$BACKUPORDNER
echo "Backupprozess beendet"
echo "###"
7. Anhang:
Evtl ist es nötig das ihr die CHMODS ändert, da sonst die .sh nicht gestartet wird, ich würde einfach stumpf 777 verwenden dann seid ihr auf der sicheren Seite
chmod 777 backup.sh
Ausführen könnt ihr das Backup ganz simpel mit
./backup.sh
Grüße euer Michael