all-inkl.com Webspace mit rdiff-backup sichern

Da ich in meinem auf openmediavault basierenden NAS mit rdiff-backup gute Erfahrungen gemacht habe, wollte ich dieses gerne auch zum Backup meines Webspace bei all-inkl.com einsetzen.

Da ich jedoch in meinem Tarif (all-inkl PrivatePlus) keinen ssh-Zugang dabei habe, kann ich die Sicherung nicht direkt über rdiff-backup machen. Ein Upgrade auf den nächsten Tarif all-inkl Premium wollte ich jedoch erstmal noch nicht, daher habe ich mich beim Support von all-inkl.com nach deren Backuplösungen erkundigt. Kurz nach meiner Anfrage kam auch schon die Antwort mit einen Verweis auf Curlftpfs und Rsync.

Daher habe ich mir Curlftpfs einmal näher angesehen und herausgefunden, dass hier ein Filesystem via FTP gemountet werden kann. Da ich bereits mit rdiff-backup Mountpoints direkt gesichert habe, lag es nahe dies auch einmal mit Curlftpfs auszuprobieren.

Das Ergebnis war sehr positiv: Es funktioniert! Man erhält mit einer, bedingt durch FTP als verwendetes Protokoll, langsameren Performance eine Differenzsicherung. Auf die Performance kommt es mir nicht an, sondern auf eine Platzsparende Möglichkeit viele Datensicherungen meines Webspace anzulegen (insbes. da sich manche Dateien nie ändern und daher auch nicht heruntergeladen werden müssen.

Im Folgenden beschreibe ich daher die Schritte, mit der jeder seine Daten zuverlässig lokal sichern kann. Die Sicherungen werden dabei von meinem BananaPro erstellt, auf dem Bananian (basierend auf Debian 7) als Betriebssystem läuft. Das Vorgehen dürfte jedoch für jedes andere Linux-Betriebssystem gleich sein, welches die unten stehenden Pakete enthält.

Installation

# direkt als User Root
apt-get install curlftpfs rdiff-backup
# bzw. mit sudo
sudo apt-get install curlftpfs rdiff-backup

curlftpfs richtig einrichten

# Mountpoint anlegen
mkdir /mnt/allinkl_ftp
# /etc/fstab wird angepasst
nano /etc/fstab
# in/etc/fstab folgende Zeile einfügen
curlftpfs#{username}:{password}@{host} /mnt/allinkl_ftp fuse rw,uid={userid},gid={groupid},umask=002,user,suid,allow_other,exec,auto,utf8 0 1

{username} = FTP Nutzername bei all-inkl.com
{password} = FTP Passwort bei all-inkl.com
{host} = Domain des Webspaces bei all-inkl.com
{userid} und {groupid} des Nutzers unter dem die Backups erfolgen sollen erhält man mit folgendem Befehl: id

mounten des Dateisystems

Ohne ein gemountetes Dateisystem geht die Sicherung nicht. Dies kann bei mir nur der User root.

mount /mnt/allinkl_ftp

Das Sicherungsscript erstellen

Im untenstehenden Script sieht man, dass die Daten vom Mountpoint /mnt/allinkl_ftp in das Backup-Verzeichnis /home/pi/allinkl1_backup kopiert werden. Um nicht alle Dateien zu kopieren habe ich einen Filter allinkl1_backup.exclude eingebaut (siehe unten). Weiterhin wird sichergestellt, dass die Backups nur 12 Wochen lang aufgehoben werden (je nach Speicherplatz kann man die Anzahl jedoch erhöhen). Als Tutorial zu rdiff-backup kann ich dieses Tutorial nur empfehlen.

Inhalt des Backupscripts „allinkl1_rdiff-backup.sh“:

#!/bin/bash
rdiff-backup --print-statistics --terminal-verbosity 2 \
    --exclude-globbing-filelist ./allinkl1_backup.exclude \
    /mnt/allinkl_ftp /home/pi/allinkl1_backup
rdiff-backup --remove-older-than 12W /home/pi/allinkl1_backup

Inhalt der Datei „allinkl1_backup.exclude“:

**.iso

Um zu testen, ob alles funktioniert, führe ich das Shellscript aus:

# pi benötigt Recht zur Ausführung
chmod 544 /home/pi/scripts/allinkl1_rdiff-backup.sh
# Starten des Scripts
./home/pi/scripts/allinkl1_rdiff-backup.sh

Aufgrund der Parameter im Script erhält man bei Fehlern eine Ausgabe auf der Kommandozeile. Im Erfolgsfall sieht man eine Übersicht der gelaufenen Sicherung.

Da die Sicherung einmal die Woche am Montag um 0 Uhr starten soll, habe ich dafür einfach einen Cronjob angelegt.

# zum Nutzer pi wechseln
su pi
# Crontab öffnen
crontab -e
# folgenden Eintrag hinzufügen
0 0 * * 1 sh /home/pi/scripts/allinkl1_rdiff-backup.sh

Sicherung mounten

Hierzu verwende ich rdiff-backup-fs, welches eine schöne Übersicht aller Sicherungen bietet.

# Software installieren
apt-get install rdiff-backup-fs
# Mountpoint anlegen
mkdir /home/pi/rdiff-backup-fs-verzeichnis
# rdiff-backup mounten
rdiff-backup-fs ./rdiff-backup-fs-verzeichnis/ /home/pi/allinkl1_backup
# rdiff-backup unmounten
fusermount -u rdiff-backup-fs-verzeichnis

Ich hoffe, das hilft dem ein oder anderen hier, der auch vor der gleichen Herausforderung steht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert