Benutzer-Werkzeuge

Webseiten-Werkzeuge


allgemein:rsync_-_server_spiegelung_backup_etc

RSYNC

Version 1.0
Stand: 22.05.2009

Author: Centro
E-Mail: centro@tux-town.ath.cx
Jabber: centro@jabberarea.de


1. Grundsätzliches

Dieses Howto beschreibt die Installation und Bedienung auf einem Server.
Bevor ihr loslegt, beachtet bitte die folgenden Regeln:

  1. lest das Howto erstmal durch: 'lesen - verstehen - handeln'
  2. Eigenverantwortlichkeit


DU alleine bist für die komplette Installation, Absicherung und Wartung des Servers verantwortlich!!!

2. Was ist Rsync ?

rsync ist sowohl ein Netzwerkprotokoll als auch ein unter der GPL stehendes Programm zur Synchronisation von Daten meistens über ein Netzwerk. Die Synchronisation läuft bei dem Programm rsync nur unidirektional, also von einem Quellverzeichnis zu einem Zielverzeichnis, ab.

Rsync ist unter allen Architekturen und Betriebssystemen lauffähig! - Windows, MAC und Linux!

3. Installation von Rsync

Debian & Ubuntu:

apt-get update && apt-get install rsync ssh 

Suse:

 
yast -i rsync* openssh*

Fedora & Centos:

yum install rsync ssh

Gentoo

emerge -i rsync

4. Parameterliste Rsync

  • -a umfasst folgende Optionen (Die Option zu verwenden ist sinnvoll, da die Rechte im Ziel übereinstimmen sollten):
    • -r kopiert Unterverzeichnisse, lässt rsync rekursiv arbeiten
    • -l kopiert symbolische Links
    • -p behält Rechte bei
    • -t behält Zeiten bei
    • -g behält Gruppenrechte bei
    • -D behält Gerätedateien bei
  • -A ACLs erhalten
  • -H Hardlinks erhalten
  • -S Dateien „mit Löchern“ effizient handhaben
  • -X Xattrs erhalten
  • -v zeigt beim Kopieren alle Schritte, die gerade ausgeführt werden, an
  • -n simuliert den Kopierauftrag, trocken - ein Testlauf, der nichts wirklich kopiert
  • -z komprimiert den Datentransfer
  • -e hiermit lässt sich die Remote-Shell wählen, welche per Default SSH ist; andere lassen sich per -e programm angeben
  • -b Backups werden erstellt
  • -u update - Dateien, die im Backup schon vorhanden und neuer als auf der Quelle sind, werden ausgelassen
  • -v verbose - Gibt einen genauen Verlauf, insbesondere wenn Fehler auftauchen
  • –backup-dir=Verzeichnis ;kann ein Verzeichnis angeben werden
  • –progress Hier wird der Fortschritt während der Übertragung angezeigt
  • –delete Dateien, die auf der Quelle nicht mehr existieren, werden auch auf dem Ziel gelöscht
  • –exclude=Verzeichnis Damit werden Verzeichnisse von dem Kopiervorgang ausgeschlossen
  • –size-only Hiermit kontrolliert rsync beim „Synchronisieren“ nur die Dateigröße, was hilfreich ist, wenn der Zeitstempel der Zieldateien nicht mit den Quellstempeln übereinstimmen

5. Spiegelung Server1 --> Server2

Datenbanken
Hier muss beachtet werden was für Dateien auf dem Server liegen. Wenn ich meinen Webserver am neuen Standort schon soweit laufen habe das ich eine Grundinstallation habe dann gibt es Sinn die Datenbanken einzeln per Mysqldumb zu sichern und auf dem neuen System wiederher zu stellen. Ich beschreibe hier das Verfahren mit MySQL Server 5 auf Linuxbasis. Das Vorgehen bei PostgreSQL etc ist das selbe.

Sicherung der Datenbanken
Backupordner anlegen

mkdir /BACKUP-MYSQL

Datebanken können mit dem jeweiligen DB Usern aber auch mit dem User Root gesichert werden. Aussehen muss das so:

mysqldump -uroot -pPASSWORT datenbank > /BACKUP-MYSQL/datenbank.sql

… und das mit jeder Datenbank die ihr auf dem Server2 wieder haben möchtet.
Gleich mal vorab um alles zentral zu haben auch der Befehl um die Datenbanken auf dem System des Server2 wiederher zu stellen:
Es wird vorausgesetzt das die nötige Leerdatenbank mit User und Pw bereits angelegt ist!

mysql -uroot -pPASSWORT datenbank < /BACKUP-MYSQL/datenbank.sql


Spiegelung der Dateien
Nach Auswahl der gewünschten Ordner starten wir nun den Rsync von Server1 nach Server2
Rsync überträgt alle Daten unverschlüsselt. Ich lege schon einen gewissen Wert darauf das meine Daten etwas geschützt werden. Daher greife ich hier auf die Verschlüsselung des SSH Tunnels zurück.

rsync -e "ssh -p 22" -avzA / --progress --exclude=/etc/fstab --exclude=/etc/resolv.conf --exclude=/sys --exclude=/proc --exclude=/tmp --exclude=/vmlinuz --exclude=/etc/network/ --exclude=/boot root@SERVER2:/

Was sagt dieser lange Befehl aus?

  • -e „ssh -p 22“ : Übergebe es an SSH und baue einen Tunnel über das SSH Protokoll mit Port 22 auf
  • -avzA : Definition dazu findet ihr ausführlich oben
  • / : Hier ist der Quellserver oder auch hier im Howto der Server1 gemeint. Ein einfacher / gibt hier den gesamten Server an!
  • –exclude= : hier exclude (ausschliesen) ich diverse Ordner oder auch nur einzelne Dateien da diese auf dem Zielserver Server2 nichts verloren haben und uns nur schaden würden. fstab würde uns die gesamte Festplattenpartionierung auf OS Ebene zerstören. TMP muss ich nicht auf dem Zielserver haben da es nur temporäre Dateien enthält. … und so weiter! :-)
  • root@SERVER2:/ : Hier stehen meine Logininformationen auf dem SERVER2. Ich möchte mich als User Root auf dem System SERVER2 einloggen und ins Verzeichnis / wechseln bzw. dort starten. ACHTE BITTE AUF DEN „:“ dazwischen!!!


Wärend des Transfers am besten nichts mehr am Server1 aber auch am Server2 verändern. Lasst den Server1 einfach mal nen paar Stunden (je nach größe der Dateien natürlich) laufen und fröhlich kopieren. Es bietet sich an den Start in einem „Screen“ Fenster laufen zu lassen!

6. Arbeiten nach dem erfolgreichen Kopieren & Syncen der Server

Sicherlich hat euer neuer Server eine neue bzw. abweichende IP vom SERVER1. Die alte bzw. bestehende IP vom SERVER1 steht aber in den Datenbanken und in dein einzelnen Konfigs. Speziell bei Controllpanels ist hier die Änderung in der Datenbank sowie in den Configdateien nötig!

Ein paar Links die sich als nützlich erwiesen haben:
ISPCP Omega & VHCS2
ISP-Control Website - Howto Change IP

7. TOOL´s ´n Tips

Um Rsync für ein automatisches Backup zu nutzen ist es erforderlich den SSH Login per Keyauth zu realisieren.
Wie man diesen auf dem Server1 zu Server2 einrichtet ist hier erklärt!
SSH Key Auth Howto

Rsync lässt sich unter Linux auch über das grafische Interface GRSYNC steuern



Rsync für Windows! - Die Funktion wird über ein cgi-win Modul bereitgestellt. Näheres zur Funktion findet man kurz erklärt im passenden Rsync Paket für Windows.
Downloadlink für Rsync.zip Datei - Rsync für Windows!

Kurzanleitung zu Rsync unter Windows:
Es soll das Datenverzeichnis „C:\Daten“ auf eine externe USB-Festplatte „U:\Backup“ abgeglichen werden.

Als erstes muss die Datei rsync.zip unter C:\Scripte sync entpackt werden. In diesem Verzeichnis befindet sich die Datei backup.cmd welche folgendermaßen abgeändert wird (mit Notepad oder einem anderen Texteditor): rsync.exe -a -v –delete /cygdrive/C/Daten/ /cygdrive/U/Backup

Der eine oder andere wird sich vielleicht über die Schreibweise wundern, da erstens statt dem Backslash normale Slashs verwendet werden und zweitens vor jeder Pfadangabe „cygdrive“ vorangestellt wird. Ohne zuweit auschweifen zu wollen muss man einfach nur wissen, dass man es so machen muss *g* - Hintergrund ist nämlich die Linux-Emulation von Cygwin… Nach dem Speichern der Datei backup.cmd kann diese nun per Doppelklick ausgeführt werden. Es öffnet sich ein schwarzes Fenster (Kommandozeile) und arbeitet die Synchronisation ab. Je nach Umfang und Größe der Dateien nimmt das beim ersten Mal etwas mehr Zeit in Anspruch, als ein normaler Kopierbefehl.

Tipp: Sollte sich ein Leerzeichen im Pfad befinden, einfach den kompletten Pfad unter Anführungszeichen setzen!

allgemein/rsync_-_server_spiegelung_backup_etc.txt · Zuletzt geändert: 2015/04/20 15:45 (Externe Bearbeitung)

Seiten-Werkzeuge