Mit BackupPC sichern Sie wichtige Daten komfortabel auf einem zentralen Server. Unter Linux brauchen Sie dazu nur die Bordmittel.
Wer ein kleines lokales Netz mit einem Server und mehreren physischen oder virtuellen Clients betreibt, der braucht eine Backup-Lösung, die vor allem den administrativen Aufwand zum Sichern mehrerer Rechner in vertretbaren Grenzen hält und die das Planen der Backups und Speichern der Sicherungen an einem zentralen Ort ermöglicht.
Zahlreiche kommerzielle Backup-Lösungen für Linux – zu den beliebten Vertretern der Gattung gehören Arkeia [1], SEP Sesam [2] oder BRU [3] – konkurrieren dabei um die Gunst des Käufers. Als freie Alternative bietet sich da BackupPC [4] an: Dessen Funktionsumfang hält mit der Kaufkonkurrenz locker mit.
Das Programm basiert auf einer Reihe von Perl-Skripten, die Sie über ein Webinterface steuern. Die Software selbst nebst Interface installieren Sie auf einem Linux-Server, der sich mit den zu sichernden Clients im lokalen Netz verbindet, um Daten von diesen zu holen oder wiederherzustellen. Da alle zum Sichern benötigten Werkzeuge, etwa Rsync, SSH, SMB oder Tar, zu den Bordmitteln eines Linux-PC gehören, setzt das System je nach Verfahren keine oder allenfalls eine minimale Konfiguration auf den Clients voraus.
Beim Sichern überträgt BackupPC die Daten nach Möglichkeit via Rsync und profitiert so von dessen Vorteilen, wie etwa den Deltas: Dabei kopiert die Software wenn möglich nur veränderte Teile einer Datei. Zum Sichern von Windows-Clients verwendet BackupPC allerdings ausschließlich das SMB-Protokoll.
Deduplizierung
Optional bietet die Software die Möglichkeit, die Dateien auf dem Server mit Gzip oder Bzip2 zu komprimieren. Das beschleunigt zwar nicht das Übertragen, spart aber Speicherplatz. Ferner unterstützt BackupPC Deduplizierung, was dafür sorgt, das die Software identische Dateien mehrerer Clients stets nur ein Mal sichert. Das funktioniert aus Prinzip nur auf Dateiebene. Gibt es irgendwo innerhalb der zu sichernden Umgebung eine Dublette, erkennt das Programm diese und ersetzt sie in der Sicherung durch einen Hardlink.
Dieses interne Referenzieren identischer Dateien spart zwar Speicherplatz auf dem Server, nicht aber beim Übertragen. Das Programm zieht die Daten immer zunächst zum Server und vergleicht erst dann. Andere Programme beherrschen Deduplizierung vor dem Übertragen.
BackupPC sichert auf jedes Medium, dass Sie am Server über dessen Dateisystem einbinden. Dabei legt es die Daten im nativen Format, auf Wunsch komprimiert, in einem Snapshot-Verzeichnis ab. Über eine Weboberfläche erhalten Sie Zugriff auf die Daten.
BackupPC sichert bei Linux-Clients neben regulären Dateien andere Elemente Unix-typischer Dateisysteme, wie FIFOs, Pipes, Hard- und Softlinks sowie Gerätedateien von block- und zeichenorientierten Geräten, allerdings keine Unix Domain Sockets. Die ermöglichen zwei Prozessen zur Laufzeit das Einrichten eines privaten Kanals zur Kommunikation und haben daher nur eine temporäre Bedeutung.
Findet die Software Hardlinks, die auf die gleiche Datei verweisen, sichert sie nur die Information über den Hardlink und speichert sie wie bei symbolischen Links als reguläre Textdatei, deren Inhalt den Pfad zur verlinkten Datei enthält. Diese Datei komprimiert BackupPC bei Bedarf. Fifos dagegen legt BackupPC als leeres Plain-File ab.
In jedem Fall sichert das Programm sämtliche Attribute einer Datei und stellt sie bei Bedarf korrekt wieder her. Weitere Einzelheiten zum Umgang mit den speziellen Dateitypen finden Sie in der entsprechenden Rubrik der Dokumentation [5]. Die steht wahlweise über den gleichnamigen Menüpunkt im Webinterface bereit.
BackupPC speichert die Unix-Attribute sämtlicher Dateien, Verzeichnisse und Unterverzeichnisse in einer speziellen Datei mit der Bezeichnung attrib, sodass das fertige Backup für jedes gesicherte Verzeichnis und jede einzelne gesicherte Datei ein derartiges File enthält.
Dessen Inhalt beginnt stets mit einer sogenannten Magic-Number, gefolgt von einer Attribut-Kette, die sich aus der Länge des Dateinamens (zur Basis 128, repräsentiert durch den Code “w” in der Pack-Funktion von Perl), dem Dateiname, dem Unix-Dateityp, den Berechtigungen, UID, GID und Größe zusammensetzt. Weitere Einzelheiten dazu finden sich in der Dokumentation. Die Angaben ermöglicht es, den korrekten Zustand sämtlicher Attribute exakt wiederherzustellen – unabhängig davon, welche Attribute der Datenträger für die Sicherung oder das Dateisystem darauf speichern.
Installation
Die Installation von BackupPC geht in den meisten Fällen unproblematisch vonstatten, weil die meisten gängigen Distributionen das Programm in den Paketquellen enthalten. Da die Software einen Apache-Webserver inklusive mod_Perl voraussetzt, bietet das Installieren über die Paketverwaltung der Distribution den Vorteil, dass diese sich auch um die Abhängigkeiten kümmert. Das betrifft nicht nur den Webserver, sondern auch die zum Sichern benötigten Tools wie rsync, libfile-rsyncp-perl und smbfs.
Wie üblich nimmt das Installieren bei Debian-basierten Distributionen wie Ubuntu einen Teil der Konfiguration vorweg, indem der Paketmanager im Verlauf der Installation einige Fragen stellt, etwa nach dem Namen der Arbeitsgruppe oder dem Domain-Namen. Die Frage, ob Debconf die Samba-Konfigurationsdatei smb.conf anpassen soll, verneinen Sie zunächst. Außerdem kümmert sich Debconf um das Anlegen eines Default-Benutzers für den Backup-Administrator und fragt nach dessen Passwort.
TIPP
Bei Bedarf wiederholen Sie die Basis-Konfiguration wie bei Debian/Ubuntu üblich, indem Sie in einem Terminal dpkg-reconfigure backuppc eingeben.
Während der Konfiguration besteht die Möglichkeit, einen Alias für BackupPC zur Apache-Konfiguration hinzuzufügen. Das sollten Sie tun, denn es hat den Vorteil, dass Sie das Webinterface nach Abschluss der Konfiguration sofort unter der Adresse http://Server/backuppc erreichen. Dort melden Sie sich mit dem Account backuppc und dem im Verlauf der Konfiguration gesetzten Passwort an.
Bei RPM-basierten Distribution verläuft die Installation genauso einfach: Unter Red Hat und Fedora genügt dazu wahlweise das Eingeben von yum install backuppc auf der Kommandozeile oder das Verwenden von Package-Kit beziehungsweise Apper. OpenSuse-Anwender installieren die Software über YaST oder Zypper.
Zwar kümmern sich Yum oder Zypper um die Abhängigkeiten, die Konfiguration bleibt aber Ihnen überlassen. Schwierig ist das nicht: Haben Sie den Apache-Webserver samt mod_perl eingespielt, passen Sie die Konfigurationsdatei /etc/httpd/conf.d/BackupPC.conf an die konkreten Gegebenheiten an (Listing 1).
Listing 1
<Directory /usr/share/BackupPC/sbin/> order deny,allow # deny from all # allow from localhost AuthType Basic AuthUserFile /etc/BackupPC/apache.users AuthName "BackupPC" require valid-user </Directory> Alias /BackupPC/images /usr/share/BackupPC/html/ ScriptAlias /BackupPC /usr/share/BackupPC/sbin/BackupPC_Admin
Beachten Sie dabei, dass die Direktiven deny und allow von Bedeutung sind, und entfernen Sie mindestens eines der beiden Kommentarzeichen. Eine sinnvolle Konfiguration im Beispiel wäre etwa allow from 192.168.0.0/24 für den Zugriff aus dem lokalen Netz.
Außerdem gilt es, den benötigten Apache-Benutzer bei einer RPM-basierten Installation manuell der Konfigurationsdatei /etc/BackupPC/apache.users hinzufügen, wozu Sie das Kommando htpasswd verwenden, das interaktiv das gewünschte Passwort abfragt:
htpasswd -c /etc/BackupPC/apache.users Benutzer
Anschließend starten Sie den Apache-Webserver. Sollte der schon laufen, ist ein Neustart erforderlich. Das funktioniert bei SysV-Init-basierten Systemen mit /etc/init.d/httpd restart. Bei Upstart-basierten Distributionen wie Ubuntu verwenden Sie service apache2 restart. Bei auf Systemd basierenden Systemen wie Fedora führt dagegen systemctl restart httpd.service zum Ziel. Danach sollte das Anmelden am Webinterface unter der Adresse http://Server/backuppc gelingen (Abbildung 1).

Abbildung 1: Nach erfolgreicher Installation steuern Sie die Software sehr einfach über das Webinterface.
Möchten Sie die Backups später automatisieren, indem Sie im Webinterface den Scheduler konfigurieren, setzt das voraus, dass die Software permanent als Dienst läuft beziehungsweise nach einem Reboot automatisch startet. Das erledigen Sie bei RPM-basierten Systemen wie Fedora mit systemctl enable backuppc oder chkconfig backuppc on. Debian und Ubuntu-Nutzer verwenden das Kommando update-rc.d.
Konfiguration
BackupPC verwaltet sämtliche Konfigurationsdateien erwartungsgemäß unter /etc/BackupPC, darunter die Konfigurationsdatei config.pl, welche eine zentrale Rolle beim Steuern der Software spielt. Das Programm selbst und sämtliche zugehörigen Tools liegen im Verzeichnis /usr/share/BackupPC.
Der Speicherort für die Backups, das Verzeichnis /var/lib/BackupPC, haben die Entwickler fest verdrahtet. Möchten Sie die Dateien an einem anderen Ort ablegen, verweisen Sie entweder mit einem symbolischen Link auf das gewünschte Verzeichnis oder Sie ändern die Variable $Conf{TopDir} in der Konfigurationsdatei /etc/BackupPC/config.pl ab. Bei Bedarf passen Sie an dieser Stelle auch die übrigen Verzeichnisse an, wie die für Programm, Konfiguration oder das Logfile.
Die Konfigurationsdatei config.pl ist zwar mit Kommentarzeilen versehen, lässt sich prinzipiell aber trotzdem eher umständlich handhaben. Meist müssen Sie sie aber nicht direkt editieren, sondern erledigen das komfortabel via Webinterface, sobald Sie in der zweiten für BackupPC elementar wichtigen Konfigurationsdatei /etc/BackupPC/hosts einen zu sichernden Host eingetragen haben. Die zuständigen Skripte schreiben die betreffenden Anpassungen in die Konfigurationsdatei.
In der Client-Konfiguration /etc/BackupPC/hosts dagegen tragen Sie jeden zu sichernden Host mit je einer separaten Zeile ein. Zur Bedeutung der Spalten finden Sie in der Datei jeweils einen Hinweis. Sofern der zu sichernde Host sich im lokalen Netz befindet, bieten die beiden vorhandenen Einträge eine gute Vorlage (Abbildung 2).

/etc/BackupPC/host ein.” width=”300″ height=”122″ />
Abbildung 2: Die zu sichernden Host tragen Sie auf dem Server in die Datei/etc/BackupPC/host ein.Die Spalte moreUsers ermöglicht es, weitere Benutzer einzutragen, die dann im Browser ebenfalls Zugriff auf das Webinterface erhalten, sofern Sie die betreffenden (Apache-)Nutzer anlegen und dabei das jeweilige Passwort setzen. Nach dem Speichern und dem Neustart von BackupPC erscheint der zu sichernde Client im Webinterface unter Host-Summary – vorerst im Bereich Hosts with no Backups.
Erste Schritte
Haben Sie BackupPC erfolgreich installiert, die Konfiguration angepasst, das Programm und den Webserver gestartet, dann können Sie über das Webinterface die zu sichernden Clients einrichten sowie Sicherungen planen und verwalten. Das Gleiche gilt für das Wiederherstellen von Dateien.
Die Optik des Webinterface fällt zwar eher sachlich aus, erfüllt aber ihren Zweck: Unter Status erhalten Sie allgemeine Informationen zum Server sowie Informationen über aktuell laufende Jobs. Im Menüpunkt Host-Summary finden Sie sämtliche in der Datei /etc/BackupPC/hosts eingerichteten Rechner, unterteilt nach solchen, bei denen das Backup gut lief (Hosts with good Backups) und solchen ohne Sicherung (Hosts with no Backups).
Klicken Sie auf den Namen des betreffenden Rechners, öffnet sich eine Seite mit einer Zusammenfassung für den PC. Hier haben Sie die Möglichkeit, über die Schaltflächen User Actions ein volles oder inkrementelles Backup zu starten oder mit einem Klick auf den Link Edit Config Details zu ändern, wie etwa die Kompressionsrate (Abbildung 3).

Abbildung 3: Bei Bedarf ändern Sie die Kompressionsrate für das Backup, um einen höheren Durchsatz im Netzwerk zu erzielen.
Nach einem Mausklick auf den Link Xfer wählen Sie das zu verwendende Übertragungsverfahren aus und konfigurieren es weiter, inklusive der zu sichernden Verzeichnisse. Bei Linux-Clients ist beispielsweise bei XferMethod die Auswahl rsync voreingestellt. Daneben gibt es smb (für Windows-Clients), ftp, ssh oder tar.
Verwenden Sie SMB zum Übertragen der Daten, fallen die Konfigurationsmöglichkeiten recht begrenzt aus: BackupPC schlägt hier als SmbShareName und damit als Wurzel für die Sicherung die auf jedem Windows-PC vorhandene administrative Freigabe C$ vor (Abbildung 4). Das funktioniert ohne weitere Konfiguration des betreffenden Windows-Clients. Alternativ geben Sie den Namen einer Freigabe an, die Sie auf dem Client eingerichtet haben.
Darunter tragen Sie bei SmbShareUserName und SmbSharePasswd den für die Sicherung zu verwendenden Windows-Benutzer nebst Passwort ein. Geben Sie hier ein Windows-Benutzerkonto an, das lokale Administrator-Rechte auf dem Windows-Client hat, ermöglicht dies BackupPC, sämtliche Dateien zu lesen und im Fall des Wiederherstellens zu schreiben. In jedem Fall bietet sich im Bereich Include/Exclude die Möglichkeit, nicht zu sichernde Verzeichnisse auszuschließen.
TIPP
Das Sichern via SMB funktioniert prinzipiell auch mit Linux-Maschinen. Es setzt dazu aber einen Samba-Server voraus, der die betreffenden Verzeichnisse exportiert.
Beim Sichern via SMB müssen Sie auf dem Client zu sichernde Verzeichnis als Freigabe einrichten. Bei Rsync geben Sie die Wurzel als Parameter RsyncShareName an. Das individuelle Hinzufügen weiterer Verzeichnisse erledigen Sie ebenfalls im Abschnitt Include/Exclude oder speziell bei den Rsync-Argumenten (SyncArgs). Bei Bedarf nehmen Sie im Bereich RsyncShareName mit der Schaltfläche Add einen komplett anderen Pfad mit in die Sicherung auf.
Es empfiehlt sich, spezielle Pfade vom Backup auszuschließen, wie etwa /proc, /sys oder /mnt. Schließen Sie /mnt oder /media nicht aus, nimmt BackupPC möglicherweise angeschlossene Geräte, wie externe Festplatten, USB-Sticks oder Kameras sowie in eine Laufwerk eingelegte Medien in das Backup auf. Möchten Sie /media nicht in Ihr Backup aufnehmen, tragen Sie bei den Rsync-Argumenten mit der Schaltfläche Insert die Anweisung --exclude=/media ein.
Clients vorbereiten
Je nach gewählter Methode für das Sichern setzt der Einsatz von BackupPC bei den jeweiligen Clients etwas Konfiguration voraus, bevor Sie die erste Sicherung über das Webinterface anstoßen können. Da bei Linux-Clients per Default Rsync zum Einsatz kommt, sollten Sie auf jedem Client zunächst prüfen, ob die Pakete für Rsync sowie ein OpenSSH-Server installiert sind – ziehen Sie diese gegebenenfalls nach.
Ferner setzt der Einsatz der Software voraus, dass sich der für BackupPC auf dem Server verwendete Benutzer auf dem Linux-Client als Benutzer root ohne Passwortabfrage anmeldet. Das funktioniert nur, falls SSH mit Public-Key-Verfahren zum Einsatz kommt (siehe Kasten “Verbindung aufnehmen”), und Sie die Schlüssel austauschen. Dieser Austausch klappt am einfachsten mit dem Befehl ssh-copy-id, über den Sie den erzeugten Schlüssel an die Datei ~/.ssh/authorized_keys2 auf dem Remote-Rechner anfügen (Abbildung 5).

ssh-copy-id kopieren Sie einen öffentlichen Schlüssel auf einen anderen Rechner im Netz.” width=”300″ height=”75″ />
Abbildung 5: Überssh-copy-id kopieren Sie einen öffentlichen Schlüssel auf einen anderen Rechner im Netz.Verbindung aufnehmen
Zum Sichern von Linux-Clients verwendet die Software in der Regel Rsync. Bei automatisierten Backups klappt das aber interaktiv mit einem Passwort am Client nicht. Daher verwendet BackupPC das Public-Key-Verfahren von SSH für ein Login. Dazu erzeugen Sie auf dem Server ein Schlüsselpaar. Das funktioniert auf der Kommandozeile durch Eingeben des folgenden Kommandos:
$ ssh-keygen -t rsa
Für den Namen des öffentlichen Schlüssels verwenden Sie wahlweise den Default-Vorschlag id_rsa oder vergeben direkt eine aussagekräftigere Bezeichnung wie id_rsa_backuppc.pub. SSH speichert die so erzeugten Schlüsselpaare im versteckten Verzeichnis .ssh des erzeugenden Benutzers.
Je nach SSH-Version heißt die Keyfile-Datei auch authorized_keys. Übrigens verwendet Ubuntu bekanntlich per Default bekanntlich keinen Root-Account. Den brauchen Sie aber für das geschilderte Verfahren. Sie kommen also nicht umhin, für die Zusammenarbeit mit dem BackupPC-Server einen entsprechenden Account auf dem Client einzurichten:
sudo passwd root
Nach Eingabe des gewünschten Root-Passwortes wechseln Sie mit su gefolgt vom Passwort für den Benutzer root in den Account des Administrators. Über [Strg]+[D] gelangen Sie wieder zurück in den Account des Benutzers
Sichern
Haben Sie die zu sichernden Verzeichnisse und das Verfahren zum Übertragen der Daten konfiguriert, dann legen Sie im Bereich Schedule fest, ob BackupPC vollständige oder inkrementelle Backups erzeugt. Ferner haben Sie die Möglichkeit, Details zum Scheduling an sich konfigurieren. Eine Erläuterung der einzelnen Parameter finden Sie in der Dokumentation beziehungsweise beim Anklicken des jeweiligen Wertes.
Haben Sie alle notwendigen Schritte bei der Konfiguration wie beschrieben vorgenommen, klicken Sie im jeweiligen Dialog auf Save und kehren zur Seite mit der Übersicht für den jeweiligen Host zurück. Dort starten Sie das Backup mit einem Klick auf die Schaltfläche Start Full Backup für einen ersten Test.
Sollte etwas mit der Konfigurationsdatei /etc/BackupPC/hosts nicht stimmen — etwa der zuständige administrative Benutzer fehlen – dann erhalten Sie die Fehlermeldung Error: Only privileged users can stop or start backups in Kombination mit dem Hostnamen.
Traten beim Test keine Fehler auf, haben Sie auf der sich öffnenden Seite Are you sure die Möglichkeit, noch einmal auf die Schaltfläche Start Full Backup zu klicken und damit endgültig die Sicherung anzustoßen (Abbildung 6). Danach gelangen Sie über den angezeigten Link oder den betreffen Host-Eintrag im Hauptmenü zur Übersicht zurück.
Fazit
BackupPC sichert wie Amanda [6] oder Bacula [7] ausschließlich reguläre Daten über das Dateisystem. Ein zentraler Server hält die Sicherungen vor und steuert die Intervalle. Auf den Clients benötigen Sie nur wenige Tools, etwa einen OpenSSH-Server und Rsync bei Linux-Clients.
Im Vergleich mit der freien und kommerziellen Konkurrenten bringt BackupPC einen großen Funktionsumfang mit, der aber etwas Zeit zum Einarbeiten erfordert. Zu den herausragenden Eigenschaft der Software gehört das Deduplizieren, eine Funktion der “Business-Class”. Findet sich irgendwo im Netzwerk eine Dublette, erkennt das Programm diese und ersetzt die redundante Datei durch einen Link. Der gesamte Stack basiert auf Perl-Skripten, den Sie über ein schlichtes Webinterface steuern. Letzteres verträgt sowohl in Sachen Bedienkonzept als auch Optik ein Update, erfüllt aber seinen Zweck.
Infos
[1] Arkeia: http://www.arkeia.com/de
[2] SEP Sesam: http://www.sep.de/de/
[3] BRU: http://www.tolisgroup.com
[4] BackupPC:http://backuppc.sourceforge.net
[5] Spezielle Dateitypen: http://backuppc.sourceforge.net/faq/BackupPC.html#special_files
[6] Amanda: http://www.amanda.org
[7] Bakula: http://www.bacula.org/de/







