Inhaltsverzeichnis
Backups mit BackupPC bei PING
Das backuppc Passwort ist im Homedir des Root Users auf blackhole:
/root/backuppc_password.txt
BackupPC ist für die Benutzung von rsync über ssh eingerichtet.
Web-Interface
Das Web-Interface läuft auf blackhole.buero.ping.de, aus technischen Gründen ist dieses allerdings nicht direkt von Außen erreichbar. Stattdessen muss ein SSH-Tunnel aufgebaut werden. Die passenden Einträge in der SSH-Konfiguration ~/.ssh/config können z.B. so aussehen:
Host blackhole Hostname buero.dyna.ping.de User bodo Port 4223 UserKnownHostsFile ~/.ssh/known_hosts.buero CheckHostIP no LocalForward 8888 localhost:80
Nach erfolgreichem Login kann dann auf das Web-Interface unter http://localhost:8888/backuppc zugegriffen werden.
Client-Setup
Auf dem Client (System, das gesichert werden soll) muss lediglich rsync installiert und SSH eingerichtet werden.
rsync
apt-get install rsync
ssh
BackupPC nutzt rsync über ssh. Dazu muss auf dem zu sichernden System das Login als root für den BackupPC-User (backuppc erlaubt sein.
ssh-forced-commands
Da es nicht die beste Idee ist, ein interaktives Login für einen unprivilegierten Systemuser als root auf einem anderen System zu erlauben wird der forced-command-Mechanismus von OpenSSH verwendet.
Hierzu wird das Skript /usr/local/sbin/ssh-backuppc-forcedcmd angelegt, mit diesem Inhalt:
use strict; use POSIX; delete($ENV{PATH}); my $origcmd = $ENV{'SSH_ORIGINAL_COMMAND'}; if (!defined($origcmd) || $origcmd eq "") { print "You're not allowed to do so! And you would have to give a command!\n"; exit 1; } open(L, ">>/tmp/backuppc_commands") or die "Cannot open command list output!\n"; print L ctime(time()) . "$origcmd\n"; if ($origcmd =~ m/^\/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size\=2048 --recursive --ignore-times . \/$/) { exec "/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /"; } elsif ($origcmd =~ m/^\/usr\/bin\/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size\=2048 --recursive . \//) { exec "/usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive . /"; } else { print "You're not allowed to do so! - $origcmd\n"; } close(L);
ssh-Schlüssel
In /root/.ssh/authorized_keys wird der öffentliche Schlüssel das BackupPC-Users eingetragen:
command="/usr/local/sbin/ssh-backuppc-forcedcmd" ssh-rsa AAAAB3NzaC1yc2EAAAADAQA...
Der vollständige öffentliche Schlüssel findet sich auf blackhole in ~backuppc/.ssh/id_rsa.pub.
BackupPC-Setup
Um weitere Maschinen zum Backup hinzuzufügen ist folgendes notwendig:
Eine Datei /etc/backuppc/_HOSTNAME_.pl anlegen, in der spezifischere Config-Optionen angegeben sind. Mindestens die Exclude Liste, da sonst mitunter viele ungewünschte Dateien gesichert werden - besonders uncool auf dem Backup-Server selber..
- Den Host entweder per Hand oder über das Webinterface in die Hosts Datei
/etc/backuppc/hosts eintragen (_HOSTNAME_ muss auf die vorher angelegte Config Datei passen). Der "User" der dort gemeint ist, ist der User, der für diesen Host das Backup steuern / verändern / starten kann
- Entweder manuell über das Webinterface ein Backup starten oder bis zum nächsten "Wakeup" warten, bis BackupPC von alleine ein Backup startet.
BackupPC-Betrieb
BackupPC sichert dann alle Dateien des Servers und speichert diese in dem Backup-Verzeichnis (/srv/backup). Wenn man aus versehen zuviel gesichert hat, kann man die Dateien entweder in /srv/backup/backuppc/pc/_HOSTNAME_ löschen oder das gesamte Verzeichnis löschen. WICHTIG: Dabei wird nicht sofort Platz frei sondern üblicherweise erst, wenn Nachts der "Deduplication-Light" Job läuft.
Restore
Ein Restore kann man recht entspannt über das Webinterface durchführen. Das läuft dann auch über rsync.