# Backup mit rdiff-backup

## ZX-81

Nachdem hier immer wieder Fragen zum Backup kommen, möchte ich meine Lösung mal vorstellen:

Seit ca 2 Jahren sichere ich verschiedene Rechner über rdiff-backup darunter einen Root Server und mehrere Notebooks. 

rdiff-backup optimiert die zu übertragende Datenmenge mit Hilfe des rsync Algorithmus. Deshalb ist es besonders gut für ein Backup über eine schmalbandige Netzwerkverbindung geeignet. Das ist nicht nur praktisch für den Root-Server, auch ein Notebook mit WLAN muss für das Backup nicht ans Kabel gehängt werden  :Cool:  .

Bei rdiff-backup kann nicht nur der Stand vom letzten Backup zurückgespielt werden, sondern auch alle früheren.  

Für die Backups habe ich einen eigenen Server. Darauf gibt es ein Backupscripts für jeden zu sichernden Rechner. Die Backupscripts werden entweder aus der crontab oder manuell gestartet. So sieht ein Backupscript aus:

```

#! /bin/sh

rdiff-backup \

--remote-schema "ssh -p 12345 -C %s rdiff-backup --server" \

--exclude "/proc/*" \

--exclude "/sys/*" \

--exclude "/dev/*" \

--exclude "/tmp/*" \

--exclude "/mnt/*/*" \

--exclude "/var/tmp/*" \

--exclude "/usr/portage/*" \

--include "/usr/src/linux-*/.config" \

--exclude "/usr/src/linux-*" \

root@master::/ /big/backup/master/

```

Der Zugriff auf den zu sichernden Rechner geschieht über ssh, die Zeile "remote-schema" ist notwendig wenn z.B. ein anderer Port für ssh gewählt werden soll. Auf beiden Rechnern muss rdiff-backup installiert sein. Für automatische Backups muss zusätzlich noch ein ssh-root-zugang per key auf dem zu sichernden System eingerichtet sein.

/proc/*, /sys/*, /dev/*, /tmp/* /var/tmp/* und /usr/portage/* sollen nicht im Backup landen (die mountpoints aber schon)

alle in /mnt/ deklarierten mountpoints sollen mitkopiert werden, evtl eingehängte Datenträger aber nicht.

Auch bei den Kernels (/usr/src/linux...) schien mir ein Vollbackup nicht notwendig, es soll eigentlich nur die ".config" Datei gesichert werden.

Ich empfehle vor dem Backup die /boot-Partition einzuhängen, damit diese mitgesichert werden kann.

IMHO ist rdiff-backup ein tolles Backupwerkzeug und ich würde mich freuen, wenn ich ein paar von Euch dazu ermutigen könnte es mal auszuprobieren.

ZX

----------

## schachti

Hast Du schon Erfahrungen, inwiefern sich damit die komplette Root-Partition im laufenden Betrieb und wiederherstellen laestt? Klappt das problemlos z. B. mit der Gentoo Installations CD?

Eignet es sich, um z. B. nach einem Plattencrash das komplette installierte System inkl. aller Daten zurueckzukopieren, oder ist es eher als reines Daten-Backup gedacht?

----------

## ZX-81

Eigentlich klappt es problemlos, habe vor kurzem ein System aus dem Backup neu aufgesetzt. Dabei habe ich entdeckt, dass im alten Backupscript die Mountpounts für /dev, /sys, /proc, /tmp gefehlt haben. Die musste ich dann noch von Hand mit den richtigen Rechten erzeugen. Insgesamt hat man natürlich schon etwas mehr Arbeit beim Zurückspielen als mit einem Imagebackup (Vorbereiten der Platte, Einspielen des Backups, Einspielen eines Portagesnapshots, chroot, installieren von grub, usw), aber es bietet auch einige Vorteile diesem gegenüber. 

Mit dem Backup im laufenden Betrieb hatte ich bisher noch keine Schwierigkeiten, wenn sich während des Backups die Daten ändern, so wird für die entsprechende Datei ein Backupfehler aufgezeichnet (.d.h. für z.B. Datenbankserverprozesse braucht man noch eine eigene Lösung, ich habe dazu das Datenverzeichnis des DB-Servers vom Backup ausgenommen, lasse aber den DB-Server kurz vor dem täglichen Backup einen Dump in den gebackupten (was ein Deutsch  :Wink:   ) Bereich schreiben).

----------

## schachti

Hmm, ich habe gerade gelesen, daß rdiff-backup Probleme mit NFS machen kann. Dann werde ich es vorsichtshalber gleich über ssh probieren...

----------

## ZX-81

Mit nfs habe ich es noch nie probiert, habe mit meinem Rootserver mit ssh angefangen und dann das Script auch für die anderen Rechner angepasst.

Noch ein Tip: Ein Logger der die logs nicht rotierend durchnummeriert (wie syslogd) sondern nach Datum ablegt (wie metalog) spart einiges an Backupaufwand. Rate mal mit welchem Logger ich angefangen habe.  :Wink: 

In Fullbackup via SSH, inkrementell ohne DUMP habe ich auch noch ein paar Fragen zu rdiff-backup beantwortet.

----------

## schachti

Danke für den Tipp - metalog ist auf allen von mir eingerichteten Rechnern (außer auf dem SuSE-Desktop und SuSE-Laptop meiner Freundin  :Wink: ) der Standard.

----------

## schachti

Eine Frage ist mir noch eingefallen: Angenommen, die Platte raucht mal ab und ich muß das Backup auf eine neue Platte spielen - wie würde das prinzipiell ablaufen? Ich weiß nicht, ob z. B. Knoppix rdiff-backup enthält. Falls ja, würde ich es wie folgt machen - falls ich was vergesse, bitte ich um Korrektur:

Platte einbauen

Knoppix booten

Platte partitionieren

mit rdiff-backup das Backup auf die Platte kopieren

chroot in das zurückkopierte System

grub installieren (in den MBR schreiben)

gentoo booten

emerge sync

Weißt Du, ob Knoppix rdiff-backup enthält?

Ist mir lieber, diese Schritte vor dem Eintritt des Notfalls zu klären...  :Wink: 

----------

## ZX-81

Zum Zurückspielen des letzten Backups brauchst Du rdiff-backup gar nicht, weil das Backup primär eine Kopie des Ursprungsverzeichnisses ist. Es gibt nur ein zusätzliches Verzeichniss "rdiff-backup-data" (oder so) in dem alle Differenzen und Logs liegen. Nur wenn Du ein Backup eines älteren Standes einspielen willst, brauchst Du rdiff-backup dafür. Das würde ich dann aber im Backupserver vorbereiten, ich bezweifle dass rdiff-backup bei Knoppix dabei ist.

Nachdem die Erinnerung daran bei mir noch recht frisch ist,  :Confused:  habe ich mal Deine Liste ergänzt

Platte einbauen

Knoppix booten

Platte partitionieren

Partitionen formatieren

Partitionen richtig mounten z.B. /boot /home

Backup vom Backupserver Mounten z.B. via nfs

Backup zurückkopieren (Das ist recht knifflig, es sollten alle Attribute, symbolische- und hard-links erhalten bleiben).

Portage snapshot auspacken (woher auch immer / portage und distfiles wurden beim Backup ausgespart)

chroot in das zurückkopierte System

grub installieren (in den MBR schreiben)

gentoo booten

emerge sync

emerge kernel-sources (wurden auch beim Backup ausgespart) 

So habe ich es bisher immer gemacht, aber vieleicht wäre es besser das Zurückspielen vom Backup-Server aus über rdiff-backup durchzuführen.

PS: Ich vermute fast, dass man für udev /dev nicht aus dem Backup ausnehmen sollte (bisher hatte ich devfs)

----------

## schachti

 *ZX-81 wrote:*   

> 
> 
> Zum Zurückspielen des letzten Backups brauchst Du rdiff-backup gar nicht, weil das Backup primär eine Kopie des Ursprungsverzeichnisses ist.
> 
> 

 

Ah, das hört sich doch sehr gut an.

 *ZX-81 wrote:*   

> 
> 
> Backup zurückkopieren (Das ist recht knifflig, es sollten alle Attribute, symbolische- und hard-links erhalten bleiben).
> 
> 

 

Das sollte, wenn ich das richtig sehe, doch ein cp -a erledigen, oder?

 *ZX-81 wrote:*   

> 
> 
> Portage snapshot auspacken (woher auch immer / portage und distfiles wurden beim Backup ausgespart)
> 
> 

 

ok, ich dachte, ein emerge sync würde reichen.

 *ZX-81 wrote:*   

> 
> 
> PS: Ich vermute fast, dass man für udev /dev nicht aus dem Backup ausnehmen sollte (bisher hatte ich devfs)
> 
> 

 

Das hätte ich sicher nicht bedacht, mein Desktop läuft mit udev.

Eine weitere Frage habe ich noch, bevor ich mit rdiff-backup glücklich werde: Hast Du mal probiert, ob es mit scponly funktioniert? Wenn das klappen würde, wäre es sicher die ideale Lösung für mich... Falls Du es noch nicht probiert hast, würde ich es halt mal ausprobieren...

----------

## a_n_d_i

 *ZX-81 wrote:*   

> 
> 
> PS: Ich vermute fast, dass man für udev /dev nicht aus dem Backup ausnehmen sollte (bisher hatte ich devfs)

 

Aber warum, ich dachte udev erzeugt alle noetigen devices automatisch beim booten?

----------

## TheRelevator

Muss ich auch auf dem Computer auf den das Backup soll das Programm emergen damit es geht?

----------

## schachti

Lies Dir das erste Posting dieses Threads nochmal genau durch.  :Wink: 

----------

## schachti

Auch auf die Gefahr hin, einen Monolog zu führen:  :Wink: 

 *schachti wrote:*   

> 
> 
> Eine weitere Frage habe ich noch, bevor ich mit rdiff-backup glücklich werde: Hast Du mal probiert, ob es mit scponly funktioniert? Wenn das klappen würde, wäre es sicher die ideale Lösung für mich... Falls Du es noch nicht probiert hast, würde ich es halt mal ausprobieren...
> 
> 

 

Ich habe es probiert und das nicht ohne Weiteres hinbekommen. Wahrscheinlich haben mir im jail irgend welche Programme oder Libraries gefehlt, die ich übersehen habe (kopiert habe ich rdiff, rdiff-backup, python sowie alle Libraries, die mir ldd zu diesen Dateien angezeigt hat).

----------

## ZX-81

 *schachti wrote:*   

> Auch auf die Gefahr hin, einen Monolog zu führen:  

 

Man wird sich doch mal ein paar Stunden mit Windows rumärgern dürfen  :Wink: 

 *schachti wrote:*   

> 
> 
> Eine weitere Frage habe ich noch, bevor ich mit rdiff-backup glücklich werde: Hast Du mal probiert, ob es mit scponly funktioniert? Wenn das klappen würde, wäre es sicher die ideale Lösung für mich... Falls Du es noch nicht probiert hast, würde ich es halt mal ausprobieren...
> 
> 

 

Nein, mit scponly habe ich noch nichts gemacht.

----------

## schachti

 *ZX-81 wrote:*   

> 
> 
>  *schachti wrote:*   Auch auf die Gefahr hin, einen Monolog zu führen: 
> 
>  
> ...

 

Mein Beileid.  :Cool:    So war's aber eigentlich nicht gedacht, sondern eher als Entschuldigung, daß ich erst Fragen stelle und sie ein paar Stunden später selbst beantworte, anstatt erstmal selbst zu probieren.

 *ZX-81 wrote:*   

> 
> 
> Nein, mit scponly habe ich noch nichts gemacht.
> 
> 

 

Vielleicht probiere ich das die Tage nochmal, falls etwas sinnvolles bei herauskommt, werde ich davon berichten (ich bezweifle das aber irgendwie).

----------

