[HowTo] Backup eines Debianservers mit rdiff-backup

Backup, Restore und Transfer von Daten
Post Reply
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

[HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi,
da ich bei einem neuen Debianserver gerade das ganze Backupsystem umstelle, dachte ich mir dokumentiere ich meine Arbeit... Ich hoffe, dass der eine oder andere einen Nutzen daraus ziehen kann :)
Haftung übernehme ich selbstverständlich keine - ihr seid selbst verantwortlich für das, was ihr in eure Maschine eintippt :evil:

Meine Anforderungen an das Backupsystem waren:
- Backup auf einen anderen, über Internet erreichbaren Server (kein Backupspace wie bei 1&1 bspw.)
- Inkrementelle Sicherungen aller wichtigen Daten
- Natürlich möglichst geringer Space- und Trafficverbrauch
- Alle Attribute wie Links, uid, gid etc müssen erhalten bleiben
- Automatische, tägliche Sicherung in der Nacht
- Sicherheit für die Backupdaten bei der Ã?bertragung und danach
- Zugriff aller Dateien in einem Zustand eines bestimmten Datums

Hauptsächlich aufgrund des letzten Punkts, habe ich mich für 'rdiff-backup' als Backup-Programm entschieden (Mehr auf http://rdiff-backup.stanford.edu), da es alle gewünschten Funktionen bietet, eine sicher Ã?bertragung per ssh ermöglicht und bei Debian als Paket verfügbar ist.

1. Installation

Bei Debian woody ist leider eine ziemlich veraltete Version von rdiff-backup dabei, aber erfreulicherweise gibt es Backports dazu. Ich habe mich für diese entschieden, da zwischen v0.6.0 und v0.12.5 doch markante Unterschiede bestehen, insbesondere bezüglich der Benutzerfreundlichkeit. Eigentlich wäre die aktuellste Version des Backports v0.13.3, aber mit dieser Version hat das Ã?berschreiben vorhandener Dateien durchwegs in einem AssertionError geendet - sollte jemand hierzu Abhilfe wissen, würde ich mich über eine PM freuen. Die Unterschiede sind allerdings sowieso ziemlich gering - also los geht's.

Zuerst loggen wir uns auf dem Produktiv- und dem Backupserver ein, wechseln zu root, ziehen uns die Backports und installieren die benötigten Pakete:

Code: Select all

flaky:~> su
Password:
flaky:/home/manus# wget http://debian.jones.dk/ida/pool/sid-jones/rdiff-backup/rdiff-backup_0.12.5-1.99.jones.0_i386.deb
flaky:/home/manus# wget http://debian.jones.dk/ida/pool/sid/librsync/librsync1_0.9.6-6.99.jones.1_i386.deb

flaky:/home/manus# dpkg -i librsync1_0.9.6-6.99.jones.1_i386.deb
flaky:/home/manus# apt-get install rdiff
flaky:/home/manus# dpkg -i rdiff-backup_0.12.5-1.99.jones.0_i386.deb
Beim Produktivserver benötigen wir ausserdem das Paket sudo:

Code: Select all

flaky:/home/manus# apt-get install sudo
flaky:/home/manus# visudo
An das Ende der Datei fügen wir folgende Zeile:

Code: Select all

rdiff   ALL = NOPASSWD: /usr/bin/rdiff-backup
Damit erlangt der Benutzer 'rdiff', den wir gleich anlegen werden, das Recht 'rdiff-backup' als root ohne Passwort auszuführen.

2. Benutzer

Auf dem Backupserver richten wir einen neuen Benutzer für das Backup an.

Code: Select all

shifty:/home/manus# adduser --disabled-login --home /var/backups/rdiff rdiff
Damit wird der Benutzer 'rdiff' mit dem Homedir '/var/backups/rdiff' erstellt, wo später die Daten gespeichert werden. Der Zugang für diesen Benutzer wurde gesperrt, da sich niemand mit diesem Account einloggen muss.

Auf dem Produktivserver wird ebenfalls ein neuer Benutzer erstellt. Danach zu diesem gewechselt und ein neuer RSA-Key erzeugt, damit später ein Login ohne Passwort möglich ist:

Code: Select all

flaky:/home/manus# adduser --disabled-password rdiff
flaky:/home/manus# su rdiff
rdiff@flaky:/home/manus$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rdiff/.ssh/id_rsa):
Created directory '/home/rdiff/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rdiff/.ssh/id_rsa.
Your public key has been saved in /home/rdiff/.ssh/id_rsa.pub.
The key fingerprint is:
aa:a1:fe:22:71:4c:be:a3:5e:37:37:d6:46:d6:f0:e2 rdiff@flaky
rdiff@flaky:/home/manus$ cd ~/.ssh/
rdiff@flaky:~/.ssh$ mv id_rsa.pub authorized_keys
rdiff@flaky:~/.ssh$ chmod 600 authorized_keys
Bei den Fragen zum Speicherungsort und der Passphrase einfach nichts eingeben. Beim Speicherpfad ist Default ok und Passphrase können wir nicht gebrauchen, da wir diese ansonsten jedesmal eingeben müssten - was bei einem automatisierten Script nicht sehr sinnvoll ist.

Nun müssen wir den eben erzeugten Private Key noch auf den Backupserver übertragen. Auf dem Produktivserver:

Code: Select all

rdiff@flaky:/home/manus$ cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgQDSLKnBsrIWLGhPQ/jcMwhDLMpRJ7n5ykUo4CG+Pxv4PoDVK4+S
[snip]
HmbokVr6tYoZKsv+fa/iCzUwbUaOA5HWv3t+mzWd
-----END RSA PRIVATE KEY-----
 
Diese Ausgabe kopieren wir nun (Text mit Maus überfahren), öffnen eine neue Datei auf dem Backupserver:

Code: Select all

shifty:/home/manus# su rdiff
rdiff@shifty:/home/manus$ mkdir ~/.ssh
rdiff@shifty:/home/manus$ cd ~/.ssh/
rdiff@shifty:~/.ssh$ touch id_rsa
rdiff@shifty:~/.ssh$ chmod 600 id_rsa
rdiff@shifty:~/.ssh$ vi id_rsa 
Nun pasten wir den Private Key in diese Datei (rechte Maustaste).

3. Das Backup

Das Grundsystem haben wir somit installiert, jetzt geht's an das eigentliche Backup. Dazu erstellen ich auf dem Backupserver eine Datei in der alle Pfade stehen, die ich nicht im Backup drin haben möchten. Alternativ müssten alle Directories angegeben werden, die man im Backup haben will. Wer es lieber umgekehrt mag, kann das natürlich auch machen.

Code: Select all

rdiff@shifty:~/.ssh$ vi ~/exclude_list
Mein File sieht bspw. folgendermassen aus:

Code: Select all

/bin
/boot
/dev
/lib
/mnt
/proc
/tmp
/vmlinuz
Je nach Verzeichnisstruktur und Anwendungsbereich kann diese aber stark variieren, /dev und /proc sollten aber in keinem Backup vorkommen.

Nun geht's an den ersten Synchronisationsversuch, dazu gehen wir zuerst in unser Homedir und erstellen ein neues Verzeichnis für das Backup, dieser Schritt ist wichtig! Sichert man direkt in das Homeverzeichnis von 'rdiff' geht sonst bei jedem Backup auch der Ordner .ssh verloren. Ausserdem ist wichtig, dass rdiff-backup durch Root ausgeführt wird, da sonst uid/gid und die Rechte nicht mitgesichert werden:

Code: Select all

rdiff@shifty:~/.ssh$ cd
rdiff@shifty:~$ mkdir data
rdiff@shifty:~$ su
Password:
shifty:/var/backups/rdiff# rdiff-backup --exclude-filelist exclude_list --print-statistics --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' rdiff@124.124.124.124::/ data/
Je nach dem wieviele Daten wir nun zur Sicherung ausgewählt haben, benötigt der Backupvorgang nun seine Zeit. 124.124.124.124 muss natürlich mit der IP eures Servers ersetzt werden.


4. Statistiken

'rdiff-backup' bietet interessante und hilfreiche Features:

Code: Select all

shifty:/var/backups/rdiff# rdiff-backup --list-changed-since 4h data/
gibt euch beispielsweise eine Liste der Files aus, die sich in den letzten 4 Stunden verändert haben.
Weitere Möglichkeiten stehen in 'man rdiff-backup'.

Im Ordner ~rdiff/data/rdiff-backup-data/ finden sich Informationen zu jeder Backupsession, wie bspw. wieviel neue Files dazugekommen sind, wieviele gelöscht wurden, wieviele MB übertragen. Ausserdem Statistiken über jeden Restore einer Datei usw. Wenn man diese Statistiken direkt nach dem Backup sehen will, kann man --print-statistics an den Backupcmd anfügen.

Diese kann zum Beispiel so aussehen:

Code: Select all

--------------[ Session statistics ]--------------
StartTime 1079899715.00 (Sun Mar 21 21:08:35 2004)
EndTime 1079899764.83 (Sun Mar 21 21:09:24 2004)
ElapsedTime 49.83 (49.83 seconds)
SourceFiles 1091
SourceFileSize 8433023 (8.04 MB)
MirrorFiles 985
MirrorFileSize 5037284 (4.80 MB)
NewFiles 106
NewFileSize 3395739 (3.24 MB)
DeletedFiles 0
DeletedFileSize 0 (0 bytes)
ChangedFiles 2
ChangedSourceSize 0 (0 bytes)
ChangedMirrorSize 0 (0 bytes)
IncrementFiles 108
IncrementFileSize 0 (0 bytes)
TotalDestinationSizeChange 3395739 (3.24 MB)
Errors 0
--------------------------------------------------
5. Restore

Das beste Backup nützt uns nichts, wenn wir nicht wissen wie wir die Daten wieder herstellen können. Dank 'rdiff-backup' ist das aber ein ziemlich einfacher Prozess. Angenommen wir wollten unseren FTP Daemon neu konfigurieren, als aber gar nichts mehr funktioniert, möchten wir wieder die Version vor 1 Stunde zurückhaben:

Code: Select all

shifty:/var/backups/rdiff# cd data
shifty:/var/backups/rdiff/data# rdiff-backup --force -r 1h --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' etc/proftpd.conf rdiff@124.124.124.124::/etc/proftpd.conf
und schon haben wir die alte Version wiederhergestellt. Voraussetzung dafür ist natürlich, dass wir vor den Ã?nderungen irgendwann ein Backup erstellt haben. Damit wir das nicht vergessen, automatisieren wir den Backupvorgang, sodass dieser ohne unser Eingreifen täglich stattfindet!

6. Automatisation

Auf dem Backupserver, öffnen wir die Datei /etc/crontab:

Code: Select all

shifty:/var/backups/rdiff/data# vi /etc/crontab
und fügen einen neuen Cronjob ein, bspw. um täglich um 06.00 Uhr das Backup zu erstellen:

Code: Select all

0 6   * * *   root    /usr/bin/rdiff-backup --exclude-filelist ~rdiff/exclude_list --print-statistics --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' rdiff@124.124.124.124::/ ~rdiff/data/
Natürlich kannst du dieses Backup auch öfters, seltener oder zu anderen Zeiten laufen lassen. Siehe dazu mein Cronjobs HowTo

7. Sicherheitsüberlegungen

Seid euch bitte bewusst, dass diese Backupmethode nicht ganz ungefährlich ist. Ihr arbeitet Lokal und Remote als Root, d.h. kontrolliert doppelt bevor ihr einen Befehl ausführt. Ich habe während dem schreiben des HowTo's ein versehentliches Leerzeichen zuviel geschrieben und schon hatte ich auf dem Remoterechner / überschrieben -> Da funktionierte dann natürlich erstmal gar nix mehr!
Ein Vorteil dieser Methode ist allerdings, dass der Produktivserver keinerlei Zugriff auf den Backupserver hat, sollte dieser also bspw. gecrackt werden ist es deutlich schwieriger auch noch an das Backup ran zu kommen.

Beachtet ausserdem, dass der Benutzer rdiff auf dem Server durch sudo root Rechte für 'rdiff-backup' erhält, er hat damit kompletten Lese- und Schreibzugriff auf dem System!

.static
Last edited by static on 2004-03-24 00:23, edited 1 time in total.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by captaincrunch »

Hey, nettes Howto!

Wie wär's denn mit einer Integration ins Debianhowto?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi,
CaptainCrunch wrote:Wie wär's denn mit einer Integration ins Debianhowto?
Wenn daran ein Interesse besteht, könnte ich mir das schon vorstellen...

.static
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by dodolin »

Wenn daran ein Interesse besteht, könnte ich mir das schon vorstellen...
Da das Thema ja durchaus zu "Debian" und "Server" passt und eigentlich jeder Admin irgendwie ein Backup haben will, passt das IMHO vorzüglich. :)

Eventuell kannst du ja mal einen Blick auf unser "Howto-Howto" werfen...? Fänd ich klasse!
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by captaincrunch »

Wenn daran ein Interesse besteht, könnte ich mir das schon vorstellen...
Jap, auch von meiner Seite aus die Bitte, dich da einzubringen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi,
CaptainCrunch wrote:Jap, auch von meiner Seite aus die Bitte, dich da einzubringen.
ok, kann ich machen - ich melde mich dann bei euch.

.static
[monk]
Posts: 163
Joined: 2002-08-09 17:31
Location: Ulm
Contact:
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by [monk] »

hi,
hab glaub noch nen fehler beim durchlesen entdeckt:

du schreibst in deinem Code '-r 15m' beim wiederherstellen der ftp-config. Und drübert im text irgendetwas von einer stunde.

ansonsten super howto gefällt mir *lob*

Gruß Michael
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

[MONK] wrote:du schreibst in deinem Code '-r 15m' beim wiederherstellen der ftp-config. Und drübert im text irgendetwas von einer stunde.
Recht hast du, habe ich verbessert.
[MONK] wrote:ansonsten super howto gefällt mir *lob*
thx :D

.static
darkunicorn
Posts: 20
Joined: 2002-06-20 10:37
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by darkunicorn »

Also erstmal danke für das schöne HowTo.

Leider hänge ich beim Versuch, das Backup zu starten, fest. Es kommt folgende Meldung:

Code: Select all

Fatal Error: Truncated header string (problem probably originated remotely)

Couldn't start up the remote connection by executing

    ssh -i /home/backup/rdiff/.ssh/id_rsa rdiff@meinedomain.ext sudo rdiff-backup --server

Remember that, under the default settings, rdiff-backup must be
installed in the PATH on the remote system.  See the man page for more
information on this.  This message may also be displayed if the remote
version of rdiff-backup is quite different from the local version (0.12.5).
Weiss jemand Rat?
darkunicorn
Posts: 20
Joined: 2002-06-20 10:37
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by darkunicorn »

Hallo nochmal,

anscheinend lag es daran, daß der rdiff user auf dem Productionserver keine Shell hatte. Jedenfalls funktioniert es sobald ich ihm eine Shell gebe...
tic
Posts: 47
Joined: 2003-11-19 13:47
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by tic »

Hab mir grad das howto durchgelesen und war am überlegen ob man nicht einfach den Backup-Befehl auf dem Produktivserver in .ssh/known_hosts ungefähr so ablegen könnte

Code: Select all

command="/usr/bin/rdiff-backup --exclude-filelist ~rdiff/exclude_list --print-statistics --restrict-read-only --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' rdiff@124.124.124.124::/ ~rdiff/data/" ssh-rsa [....]
Der cronjob baut dann nur noch die Verbindung auf, hat aber keine einflußmöglichkeit auf den ausgeführten Befehl. Ausserdem finde ich die --restrict-read-only Option da ganz sinvoll (paranoia).
Dann hätte man doch auch vom Backup Server aus keine Möglichkeit mehr auf den Produktivserver zu schreiben?

Hintergrund: <annahmemodus>Captain-Crunch ist Backupserver für dodolin und umgekehrt und man muss keine Sorgen haben dass ein Einbruch auf dem Backupserver das eigene System gefährdet.</annahmemodus>

Hab mir das noch nicht genauer überlegt.
Ist so ein bißchen aus dem Bauch geschossen.

Manfred
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi,
tic wrote:Hab mir grad das howto durchgelesen und war am überlegen ob man nicht einfach den Backup-Befehl auf dem Produktivserver in .ssh/known_hosts ungefähr so ablegen könnte

Code: Select all

command="/usr/bin/rdiff-backup --exclude-filelist ~rdiff/exclude_list --print-statistics --restrict-read-only --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' rdiff@124.124.124.124::/ ~rdiff/data/" ssh-rsa [....]
Ich nehme an du meinst, ~/.ssh/authorized_keys anstatt ~/.ssh/known_hosts.

Eigentlich eine gute Idee, wird imho aber nicht funktionieren. Der Command wird ja auf Seite des Produktionsservers ausgeführt, so wie er jetzt dasteht wäre er somit völlig falsch. Damit das Sinn machen würde, müsste man den Command umschreiben, sodass der Produktionsserver dann von sich aus eine Verbindung zum Backupserver aufbaut und das Backup rüberspielt, das hätte, wie du richtig geschrieben hast, zur Folge, dass der Backupserver nichts "Böses" mehr anstellen könnte, hätte aber auch den Nachteil, dass der Produktionsserver einen Zugang zum Backupserver bräuchte und, im Falle eines gecrackten Servers das Backup in Gefahr wäre, was nicht mehr mit
static wrote:[...]
- Sicherheit für die Backupdaten bei der Ã?bertragung und danach
[...]
zusammenpassen würde. Im Prinzip ist es eine Grundsatzentscheidung; ist mir die Sicherheit es Backups wichtiger, oder vertraue ich dem Backupserver nicht.

Die --restrict-read-only Option dürfte allerdings in jedem Fall sinnvoll sein, da hast du recht.

btw: thx, das ihr den Thread wieder nach oben geholt habt - ich hab ganz vergessen, das ich den ja noch fürs Debianhowto aufbereiten wollte :roll: Werde ich wohl diese Woche noch nachholen, sorry ;)

.static
tic
Posts: 47
Joined: 2003-11-19 13:47
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by tic »

Ich nehme an du meinst, ~/.ssh/authorized_keys anstatt ~/.ssh/known_hosts.
Ja, mein ich :-)

Ich war da mal auf einer Seite die sowas in der Art als howto angeboten hat. Das hat mich eigentlich auf die Idee gebracht.
Mal schaun ob ich die Seite wieder finde.

Könnte natürlich auf Kosten einer "einfachen" Rücksicherung gehen. Aber das soll ja eher die Ausnahme sein (wenn ich auch leider eben erst die Ausnahme hatte).

Das was ich in meinem letzten Post eingefügt hab seh ich eher als Pseudocode :-)
Wollte nur verdeutlichen was ich meine.
bernostern
Posts: 129
Joined: 2003-02-09 12:52
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by bernostern »

Hi,

Ich würde gerne einen Sarge-Rechner auf einen Woody-Rechner sichern und wollte fragen ob es Probleme bei unterschiedlichen Versionen von rdiff etc. gibt/geben kann?

Oder arbeiten die Versionen zusammen?

Danke und Gruß,
Bern
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi,
ich habe leider keine Möglichkeit das zu testen und weiss daher auch nicht ob es funktioniert. Ich tendiere aber eigentlich eher dazu, dass es keine Probleme geben sollte. Auf jedenfall würde es mich interessieren ob's geklappt hat, wenn du's ausprobierst.

.static
cipi
Posts: 39
Joined: 2002-10-25 01:15
Location: Karlsruhe
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by cipi »

ich sichere einen debian-server auf Suse und umgekehrt, benutze dafür auch 2 unterschiedliche Versionen und es geht.
Es kommt zwar immer einen Meldung ala "sie benutzen 2 unterschiedliche Versionen, aber das sichern ging trotzdem"


gruß, cipi
floker
Posts: 82
Joined: 2004-01-04 15:14
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by floker »

Hallo,

ich nutzte dein Howto genau so wie oben beschrieben, funktioniert auch gut, nur er scheint die exclude-datei irgendwie zu ignorieren. Obowhl so wie oben angegeben eingebunden. Auf jeden Fall sichert er mir z.b. /dev /proc usw. mit..
Woran könnte das liegen?
Ich habs auch schon mti exclude-globbing-filelist versucht, leider auch ohne erfolg.
Danke,
Flo
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi Flo,
hast du sicher die richtige Version von rsync-diff? Mach mal

Code: Select all

man rdiff-backup
und schau nach ob dort --exclude-filelist erwähnt wird. Ã?lteren Versionen (bspw. die, welche Debian stable noch verwendet) unterstützte diese Filelists noch nicht.

Ansonsten vielleicht mal die Rechte prüfen? Kann der Benutzer rdiff die Datei exclude_list lesen?

.static
floker
Posts: 82
Joined: 2004-01-04 15:14
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by floker »

static wrote:Hi Flo,
hast du sicher die richtige Version von rsync-diff? Mach mal

Code: Select all

man rdiff-backup
und schau nach ob dort --exclude-filelist erwähnt wird. Ã?lteren Versionen (bspw. die, welche Debian stable noch verwendet) unterstützte diese Filelists noch nicht.

Ansonsten vielleicht mal die Rechte prüfen? Kann der Benutzer rdiff die Datei exclude_list lesen?

.static
Hi static,

also ich nutze diese Version:
rdiff-backup 0.13.4

und der benutzer rdiff hat lese/schreibrechte auf exclude_list.
Laut manfile gibt es exclude-filelist auch. Er ignoriert es nur irgendwie.. egal was drinnesteht...

nur damit ich nicht komplett alles verkehrt mache... Die Datei benötige ich doch auch wirklich nur auf dem Backuprechner, ja? Also auf dem Rechner, von dem ich das ganze dann per Cron aufrufe.
Ich hab wirklcih alles wie in deinem Howto beschrieben gemacht, ich sehe da wirklich keinen Fehler bei mir im Moment, leider. :(

Ich nutze auf beiden Servern übrigens Debian Sarge

Wäre schön wenn du noch eine Idee hast.
Danke,
FLo
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by static »

Hi Flo,
floker wrote:also ich nutze diese Version:
rdiff-backup 0.13.4
bei meinem Tutorial wurde v0.12.5 verwendet. Leider endet das Changelog auf der Homepage von rdiff-backup bei v0.12.7, ich kann also nicht sagen, ob es eventuell an der Version liegt. Vielleicht mal ausprobieren?

Ansonsten, versuch doch mal den Inhalt der exclude_list an --exclude zu übergeben, also etwa: '--exclude /proc /dev' usw... Ist zwar nicht so bequem, aber vielleicht funktionierts damit.
floker wrote:nur damit ich nicht komplett alles verkehrt mache... Die Datei benötige ich doch auch wirklich nur auf dem Backuprechner, ja? Also auf dem Rechner, von dem ich das ganze dann per Cron aufrufe.
Ja, die Datei filelist_exclude muss nur auf dem Backupserver vorliegen, einfach im Homedir des rdiff-Users, wenn du es mit --exclude-list ~rdiff/filelist_exlude aufrufst.

.static
floker
Posts: 82
Joined: 2004-01-04 15:14
 

Re: [HowTo] Backup eines Debianservers mit rdiff-backup

Post by floker »

static wrote:Hi Flo,
floker wrote:also ich nutze diese Version:
rdiff-backup 0.13.4
bei meinem Tutorial wurde v0.12.5 verwendet. Leider endet das Changelog auf der Homepage von rdiff-backup bei v0.12.7, ich kann also nicht sagen, ob es eventuell an der Version liegt. Vielleicht mal ausprobieren?

Ansonsten, versuch doch mal den Inhalt der exclude_list an --exclude zu übergeben, also etwa: '--exclude /proc /dev' usw... Ist zwar nicht so bequem, aber vielleicht funktionierts damit.
floker wrote:nur damit ich nicht komplett alles verkehrt mache... Die Datei benötige ich doch auch wirklich nur auf dem Backuprechner, ja? Also auf dem Rechner, von dem ich das ganze dann per Cron aufrufe.
Ja, die Datei filelist_exclude muss nur auf dem Backupserver vorliegen, einfach im Homedir des rdiff-Users, wenn du es mit --exclude-list ~rdiff/filelist_exlude aufrufst.

.static
ok, danke für deine Mühe, ich werd das jetzt mal "selbst compilieren"... hab mir nur gedacht, dass es aufgrund der höheren Versionsnummer eher funktionieren sollte als nicht :D

EDIT: also, ich hab jetzt auf 0.12.7 "downgegradet". das ganze nur mit --exclude funktioniert. mmmh, sehr merkwürdig.

EDIT2: nur leider funktioniert nur --exclude /proc
ein --exclude /proc /dev /floppy gibt eine Fehlermeldung raus "too many arguments"

wenn ich das ganze so schreibe: --exclude '/proc /dev /floppy' nimmt er sie trotzdem rein...

laut manpage sollte erste schreibweise eigentlich stimmen... *grml*

letztes EDIT: :)

Code: Select all

- /bin
+ /boot
+ /etc
- /var
+ /var/log
+ /home
- /floppy
- /cdrom
- /mnt
- /dev
- /proc
- /lib
- /tmp
So sieht jetzt meine list.txt aus, die binde ich statt mit --exclude-filelist mit --exclude-globbing-filelist ein und es funktioniert. Alles mit nem + includet er, alles mitm minus excluded er.
Keine Ahnung warum es anders nicht geht... so funktioniert es jetzt auf jeden Fall :)

Danke für deine Hilfe .static
Anonymous
 

--exclude mehrmals angeben

Post by Anonymous »

Hallo!
EDIT2: nur leider funktioniert nur --exclude /proc
ein --exclude /proc /dev /floppy gibt eine Fehlermeldung raus "too many arguments"
In der uralt Stable-Version muss das Attribut --exclude mehrmals angegeben werden, wenn mehrere Verzeichnisse nicht mitgenommen werden sollen. Viellecht ist dies auch in den neueren Versionen der Fall.

Beispiel:

Code: Select all

rdiff-backup --exclude /cdrom --exclude /dev --exclude /floppy --exclude /initrd --exclude /lost+found --exclude /mnt --exclude /opt --exclude /proc --exclude /root --exclude /tmp --remote-schema 'ssh -i ~rdiff/.ssh/id_rsa %s sudo rdiff-backup --server' rdiff@123.123.123.123::/ data/
Weiß jemand ob die Version 0.13.3 welche es unter http://debian.jones.dk/ida/pool/sid-jones/rdiff-backup/ gibt einwandfrei funktioniert? Im HOWTO ist ja angegeben, dass es mit dieser Version Probleme gab.

Gruß,
Jesse Blue
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz
 

Re: --exclude mehrmals angeben

Post by static »

Hi
Jesse Blue wrote:Weiß jemand ob die Version 0.13.3 welche es unter http://debian.jones.dk/ida/pool/sid-jones/rdiff-backup/ gibt einwandfrei funktioniert? Im HOWTO ist ja angegeben, dass es mit dieser Version Probleme gab.
Wenn es bei jemandem bzw. bei dir funktioniert wäre ich um eine Rückmeldung froh. Ich hatte diese Version eigentlich damals beim Schreiben des HowTo's ausgiebig getestet und bin einfach nicht weitergekommen (wie gesagt, Assertion Error beim Ã?berschreiben). Ich habe es seither aber nicht mehr versucht.

.static
Post Reply