Letzte Woche habe ich über Festplattenkopien mit Norton Ghost geschrieben, diese Woche ist die Linux Welt dran 😀
Gerade bei Servern ohne Gespiegeltes Raidsystem sind Backups auf externen Servern/Rechern wichtig, so wie es auch bei mir der Fall ist, daher diese recht einfache 15-Minuten Anleitung zum Erstellen eines Backups unter Linux Debian
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