PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Backup mit rsync



df8oe
01-07-2007, 15:33
Hallo an alle,

ich möchte meinen kompletten Rootserver regelmässig per rsync sichern. Dazu habe ich ein paar bash-Scipte erstellt, die das cron-gesteuert für mich erledigen und per ssh an meinen Server zu Hause übertragen. "Paar" deswegen, weil ich verschiedenen Daten öfter sichere (weil sie sich oft verändern), andere seltener.

Soweit, so gut - läuft auch alles. ABER:

1) Ich bekomme bei der Sicherung des "Systems" in meinen Logs viele Fehlermeldungen der Art "skipping non-regular file...". Alles sind Sockets oder Dateien in /dev. Die müssen wohl auch nicht gesichert werden, weil sie sowieso runtime-erzeugt werden. Allerdings wäre es schön, wenn ich rsync dazu bekommen könnte, das dann auch nicht auszugeben - bei der Fülle an Dateien sehe ich in den Logs evtl. "echte" Fehler nicht mehr! Wie geht das?

2) Nach Untersuchung der gesicherten Daten auf meinem Server zu Hause habe ich gesehen, daß ALLE Dateien dem User:Gruppe gehören, unter dessen Account die Sicherung vorgenommen wurde!! Das bedeutet, daß es im Falle eines Crashes des Rootservers nicht mehr möglich ist, die "alten" Rechtestrukturen wiederherzustellen - oder irre ich mich??

Wenn ich mich irre: wie geht dann die Wiederherstellung der alten Rechte?

Wenn ich mich nicht irre: was kann ich tun, um eine Wiederherstellung der alten Rechtestrukturen zu gewährleisten?

Mit freundlichem Gruß in die Runde
df8oe

jeebee
01-07-2007, 22:13
-a, --archive archive mode; same as -rlptgoD
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve times
-g, --group preserve group
-o, --owner preserve owner (super-user only)
Also: rsync -a /* würde (als root ausgeführt) alles kopieren, devices als devices berücksichtigen, symlinks erhalten, Eigentümer, Gruppen und Rechte erhalten, Erstell-/Zugriffszeiten erhalten.
Ausführlicher:
man rsync im Terminal eingeben und lesen.

df8oe
02-07-2007, 20:46
Ich benutze rsync -azlH --devices --delete-after ... -e ssh user@homeserver.no-ip.com ... unter root.

Ich bekomme zig Fehlermeldungen "skipping non-regular file..."

Alle Dateien gehören nachher auf dem homeserver dem User user und der Gruppe users. Nach dem Studieren der manpage hätte es genauso sein sollen, wie Du es mir beschreibst - ist es aber nicht. Daswegen meine Frage!

Mit freundlichem Gruß
df8oe

jeebee
02-07-2007, 21:24
ach so, dann weiss ich auch nicht weiter. Sorry

MfG jeebee

PS:
Hab mich gerade noch an dies (http://www.linuxforen.de/forums/showthread.php?t=201632&highlight=tar) erinnert. Ist ein Tutorial zu Datensicherungen auf linuxforen.de. Allerdings mit tar und nicht mit rsync. Du könntest aber z.B. die Daten nach diesem Bsp. sichern und dann den Tar-Ball mit rsync auf den Home-Server übertragen. Bei dieser Methode bleiben die Rechte und Eigentümer sicher erhalten.

PS2: Hmm, wenn du natürlich die Daten auf dem Home-Server als user "user" sicherst, dann kannst du natürlich Benutzer und Rechte nicht erhalten. Denn egal als welcher User du die Daten vom Root-Server sendest, auf dem Home-Server werden sie vom User "user" geschrieben und dieser darf nicht Dateien mit beliebigen Eigentümern anlegen.

df8oe
04-07-2007, 08:07
Hmmmmm..... Es wäre doch aber ein Sicherheitsproblem, wenn ich einen Rootzugriff auf meinen Server Zuhause ermögliche! Kann man das irgendwie umschiffen (sudo & Co.) ?? Ich kann mir nicht vorstellen, daß alle Leute, die mit rsync sichern, einen Rootzugriff per SSH ermöglicht haben!


Gruß
df8oe

sutterp
04-07-2007, 13:23
Ich benütze rsync mit den folgenden Optionen um System Dateien über das Internet abzusichern.


rsync --archive --safe-links --recursive --delete --perms --group --times

Dabei ist bei der --delete Option aber folgendes zu beachten

Ein apache server hat z.B. Einträge in /etc/apache2/vhosts.d, da ist es erwünscht die --delete Option zu benützen, da dann entfernte Virtual Servers auf der Backup Seite mit entfernt werden.

Löscht man aber eine Datei aus Versehen, dann ist die --delete Option nicht am Platz, da dann nach dem nächsten rsync diese Datei auch auf der Backup Seite entfernt wurde.

Die UID´s und GID´s sind wahrscheinlich auf den zwei Systemen unterschiedlich. Diese ja nicht an das Backup System anpassen. Nach einem re-store mit rsync vom Backup System auf das Ziel System stehen sie dann wieder richtig.

Noch etwas das zu beachten ist. Je nach vefügbarer Bandbreite kann so ein rsync zwischen ein paar Minuten bis zu ein paar Stunden dauern. Diese Verzögerung kann aber zu Inkonsistenzen führen, z.B bei voneinander abhängigen Dateien wie /etc/passwd und /etc/shadow. Je länger der rsync dauert umso grösser das Risiko. Generell kann aus diesen Gründen kein 100 prozentig sicherer Backup von einem laufenden System gemacht werden. Sollen die gesicherten Daten Konsistent und zuverlässig sein, kann dies nur durch einen ´offline backup' (system runterfahren, von CD minimal system booten, backup durchführen, system wieder hochfahren) gemacht werden.

Ich benütze die folgende Methode um eine 'on-line' Sicherung von einem laufenden System durchzuführen und welche die vorgenannten Risiken weitgehend vermeidet:

Die root partition ist auf einem Raid-5 disk mit zwei Laufwerken.
Die Methode fährt das system auf runlevel 1 runter um alle Applikationen zu stoppen, markiert dann eine der raid-5 partitions als faulty und fährt das System wieder auf runlevel 3 oder 5 hoch (inklusive start der Applikations Software). Dies dauert nur ein paar Sekunden.

Jetzt habe ich Zeit, die Partition ganz aus dem raid-5 zu entfernen, mounte dann die Partition auf einen mount point und kann die Partition (oder teile davon) mit rsync übertragen. Jetzt spielt die Dauer der Übertragung keine Rolle mehr, da das System nicht mehr auf diese Partition zugreifft.

Wenn rsync fertig ist, wird die Partition wieder in den Raid-5 zugefügt und synchronisiert sich dann selbst wieder mit dem laufenden System.

Peter

Pingu
04-07-2007, 13:31
Lesen, verstehen, anwenden und glücklich werden: http://www.linux-magazin.de/heft_abo/ausgaben/2004/09/unwetterzentrale

df8oe
06-07-2007, 08:53
Danke für alle eure Beiträge - nun kann ich wieder ruhig schlafen - ein testweises zurückspielen des rsync auf eine leere Platte ergab nun ein funktionsfähiges System mit den richtigen Rechten.

Ein Problem mit der Bandbreite habe ich denke ich nicht - ich habe eine ADSL2+ - Leitung und erreiche echte 1,6MB7s downstream. Ausserdem habe ich mir angewöhnt, die Sicherungsergebnisse des letzten rsyncs bis zum übernächsten rsync aufzuheben - so habe ich immer drei Möglichkeiten, falls doch mal was schief laufen sollte.

Mit freundlichem Gruß
df8oe

PS:
Das mit dem Linux-Magazin war ja echtes Synchronissity :)