Rsync: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Baustellenschild entfernt)
(Beleg dass diese Aussage gerechtfertigt ist?)
 
(38 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Autor: [[Benutzer:Yehudi|Yehudi]]
+
{{Infobox_Software|
 +
Name= rsync<br />[[Bild:rsync.png|240px]]
 +
|Screenshot=
 +
|Beschreibung=
 +
|Hersteller= Samba Team
 +
|AktuelleVersion= 2.6.3
 +
|AktuelleVersionFreigabeDatum=
 +
|Betriebssystem= Linux, Unix, OS X
 +
|Kategorie= [[Backup]]
 +
|Lizenz= [[GPL]]
 +
|Deutsch = ja
 +
|Website= http://samba.anu.edu.au/rsync/
 +
}}
 +
Autor: [http://www.linux-club.de/faq/Benutzer:Yehudi Yehudi]
 +
{{Box Test||
 +
* [[openSUSE]] 10.3
 +
* [[openSUSE]] 10.2
 +
* SUSE Linux 10.0
 +
* [[Ubuntu]] 6.10
 +
* [[Fedora]] 6, 7, 8
 +
}}
 +
{{Box Wissen||
 +
* Unterschied zwischen [[Paketmanager]]n
 +
* Umgang mit [[YaST]], [[APT]] oder [[smart]]
 +
* Umgang mit der [[shell]]
 +
}}
 +
 
 +
 
 
== Einführung ==
 
== Einführung ==
  
rsync ist ein Netzwerkprotokoll, welches unter GPL steht. Das Programm ist für Backups bestens geeignet, (Kopien von A nach B), aber eine Sychronisation von den Daten findet nicht statt. Werden auf b Daten geändert, so können diese nicht abgegeglichen werden. Sind bei einem BackUp Daten mit der selben Zeitangabe vorhanden, werden diese nicht überschrieben, was Zeit spart. Das BackUp Programm wurde von Entwicklern des Samba Team u.a. von Paul Mackeras und Andrew Tridgell programmiert.
+
''rsync'' ist ein Netzwerkprotokoll, welches unter [[GPL]] steht. Das Programm ist für [[Backup]]s bestens geeignet (Kopien von A nach B). Werden auf B Daten geändert, so können diese nicht abgegeglichen werden. Sind bei einem [[Backup]] Daten mit der selben Zeitangabe vorhanden, werden diese nicht überschrieben, was Zeit spart. Das Backup-Programm wurde von Entwicklern des [[Samba]]-Team, u.a. von '''Paul Mackeras''' und '''Andrew Tridgell''', programmiert.
 +
 
 +
Das Tool kann auch mit [[SSH]] kombiniert werden.
  
Das Tool kann auch mit SSH kombiniert werden.
+
Im Gegensatz zu [[cp]], welches man zum Kopieren auf der [[Konsole]]n nutzen kann, bietet rsync zahlreiche Steuerungsmöglichkeiten, die unter [[cp]] nicht vorhanden sind. [[cp]] würde z.B. bereits vorhandene Dateien erneut kopieren.
  
Im Gegensatz zu cp, welches man zum kopieren auf der Konsolen nutzen kann bietet rsync zahlreiche Steuerungsmöglichkeiten, die unter cp nicht vorhanden sind. cp würde z.B. bereits vorhandene Dateien erneut kopieren,
 
 
== Installation ==
 
== Installation ==
  
Ich setze einfach eine Installation mit [[APT]] oder smart vorraus. Dann muss sich nur noch als root in der Konsole angemeldet werden und
+
Ich setze einfach eine Installation mit [[APT]] oder [[smart]] vorraus. Dann muss sich nur noch als [[root]] in der [[Konsole]] angemeldet werden und
  
 
  apt-get install rsync
 
  apt-get install rsync
Zeile 23: Zeile 51:
 
=== Optionen ===
 
=== Optionen ===
  
* -a umfasst folgende Optionen (Die Option zu verwenden ist sinnvoll, da die Rechte im Ziel übereinstimmen sollten):
+
*''-a'' umfasst folgende Optionen (Die Option zu verwenden ist sinnvoll, da die Rechte im Ziel übereinstimmen sollten):
** -r kopiert Unterverzeichnisse
+
**''-r''    kopiert Unterverzeichnisse, lässt rsync rekursiv arbeiten
** -l kopiert symbolische Links
+
**''-l''    kopiert symbolische Links
** -p behält Rechte bei
+
**''-p''    behält Rechte bei
** -t behält Zeiten bei,
+
**''-t''    behält Zeiten bei,
** -g behält Gruppenrechte bei
+
**''-g''    behält Gruppenrechte bei
** -D behält Gerätedateien bei; nur root  
+
**''-D''    behält Gerätedateien bei; nur root  
* -v zeigt beim Kopieren alle Schritte die gerade ausgeführt werden an
+
*''-A''    ACLs erhalten
* -n simuliert den Kopierauftrag
+
*''-H''    Hardlinks erhalten
* -z Komprimierung
+
*''-S''    Dateien "mit Löchern" effizient handhaben
* -e hiermit lässt sich die remote shell wählen, welches meistens SSH ist, und somit: -e ssh
+
*''-X''    Xattrs erhalten
* --exclude=Verzeichnis Damit werden Verzeichnisse von dem Kopiervorgang ausgeschlossen
+
*''-v''    zeigt beim Kopieren alle Schritte, die gerade ausgeführt werden, an
* --delete Es können alle Dateien im Zielverzeichnis mit der Optiongelöscht werden, die es im Quellverzeichnis nicht gibt.
+
*''-n''    simuliert den Kopierauftrag, trocke''n'' - ein Testlauf, der nichts wirklich kopiert
* -b Bei der Option --delete werden gelöschte Objekte gesichert.
+
*''-z''    komprimiert den Datentransfer
* --progress Hier wird der Fortschritt während der Übertragung angezeigt
+
*''-e''    hiermit lässt sich die Remote-Shell wählen, welche per Default SSH ist; andere lassen sich per <code>-e programm</code> angeben
*  --size-only Hiermit kontrolliert rsync beim "Synchronisieren" nur die Dateigröße, was hilfreich ist, wenn der Backup-Server mit dem Zeitstempel nicht überein des Quell-PCs nicht identisch ist.
+
*''-b''    Backups werden erstellt
*  -u update - Dateien, die im BackUp schon vorhanden und sind sind, werden ausgelassen
+
*''-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
+
*''-v''    verbose - Gibt einen genauen Verlauf, insbesondere wenn Fehler auftauchen
*  -z komprimiert die Dateien
+
*''--backup-dir=Verzeichnis'' ;kann ein Verzeichnis angeben werden
* --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.
  
 +
Alle Optionen und eine Erläuterung ist mit man rsync oder rsync -h aufzurufen.
  
Alle Optionen und eine Erläuterung ist mit man rsycnc oder rsync -h aufzurufen.
 
 
=== Verwendung ===
 
=== Verwendung ===
  
Zeile 55: Zeile 86:
  
 
Ziel und Quelle sind dabei unabhängig vom Rechner, so dass das BackUp im Rechner auf der gleichen, auf einer anderen Festplatte, im eigenen Netzwerk oder im Internet vorgenommen werden kann.  
 
Ziel und Quelle sind dabei unabhängig vom Rechner, so dass das BackUp im Rechner auf der gleichen, auf einer anderen Festplatte, im eigenen Netzwerk oder im Internet vorgenommen werden kann.  
 +
 
  rsync -OPTIONEN foo:/home/secureme baa:/home/backup
 
  rsync -OPTIONEN foo:/home/secureme baa:/home/backup
  
Zeile 62: Zeile 94:
 
'''Spiegeln von Ordnern'''
 
'''Spiegeln von Ordnern'''
  
 +
rsync -abuv --delete --progress /home/yehudi/  /data1/home/yehudi
 +
oder
 
  rsync -arbuv --delete --progress /home/yehudi/  /data1/home/yehudi
 
  rsync -arbuv --delete --progress /home/yehudi/  /data1/home/yehudi
  
 
+
In <code>data1</code> ist die 2. Festplatte eingebunden, auf der bei mir auch ein SUSE Linux 10.0 wie auf der ersten Festplatte installiert ist.
In data1 ist die 2. Festplatte eingebunden, auf der bei mir auch ein SUSE Linux 10.0 wie auf der ersten Festplatte installiert ist.
 
  
 
== Syntaxen zum Übertragen ==  
 
== Syntaxen zum Übertragen ==  
  
 
=== Allgemeine Syntax ===
 
=== Allgemeine Syntax ===
 +
 
  rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST                # lokale Quelle --> remote Ziel
 
  rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST                # lokale Quelle --> remote Ziel
 
  rsync [OPTION]... [USER@]HOST:SRC DEST                        # remote Quelle --> lokales Ziel
 
  rsync [OPTION]... [USER@]HOST:SRC DEST                        # remote Quelle --> lokales Ziel
Zeile 81: Zeile 115:
  
 
Hiermit wird der Inhalt des Verzeichnisses dem Host aufgeführt:
 
Hiermit wird der Inhalt des Verzeichnisses dem Host aufgeführt:
 +
 
  rsync irgend.ein.host:/daten
 
  rsync irgend.ein.host:/daten
  
=== Anwendung imNetzwerk ===
+
=== Anwendung im Netzwerk ===
 +
 
 +
Mit folgender Befehlssyntax werden alle Files des aktuellen Verzeichnisses, die mit <code>.c</code> enden auf die Remote-Maschine nach <code>src</code> übertragen:
  
Mit folgender Befehlssyntaxe werden alle Files des aktuellen Verzeichnisses, die mit .c enden auf die remote Maschine src übertragen:
 
 
  rsync *.c irgend.ein.host:src/
 
  rsync *.c irgend.ein.host:src/
  
Hier wird der letzte Ordner übertragen (im Ziel ist das dann /daten/dir)
+
Hier wird der letzte Ordner übertragen (im Ziel ist das dann <code>/daten/dir</code>)
 +
 
 
  rsync -azv /src/dir irgend.ein.host:/daten
 
  rsync -azv /src/dir irgend.ein.host:/daten
  
So wird nur der Inhalt des Ordner "dir" übertragen, aber der Ordner selber nicht.
+
So wird nur der Inhalt des Ordner <code>dir</code> übertragen, aber der Ordner selbst nicht.
 +
 
 
  rsync -azv /src/dir/ irgend.ein.host:/daten
 
  rsync -azv /src/dir/ irgend.ein.host:/daten
  
 
Übertragung mit User und Port:
 
Übertragung mit User und Port:
 +
 
  rsync -azv /src/dir/ user@irgend.ein.host:9999/daten
 
  rsync -azv /src/dir/ user@irgend.ein.host:9999/daten
 +
 +
Klassisches Beispiel für das Sichern des eigenen Home-Verzeichnisses auf einem Server im Netz.
 +
 +
rsync -abuvz --delete --progress /home/me foobar.com:/backup/home/me
 +
<!--
 +
rsync -abuvz --delete --progress -e ssh /home/me foobar.com:/backup/home/me-->
  
 
=== Lokales Übertragen von Dateien ===
 
=== Lokales Übertragen von Dateien ===
 +
 
  rsync -azv /src/dir /daten    # überträgt das Verzeichnis /src/dir komplett nach /daten
 
  rsync -azv /src/dir /daten    # überträgt das Verzeichnis /src/dir komplett nach /daten
 
  rsync -azv /src/dir/ /daten    # überträgt nur den Inhalt
 
  rsync -azv /src/dir/ /daten    # überträgt nur den Inhalt
 
  rsync *.jpg /daten/bilder      # überträgt nur .jpg Dateien nach /daten/bilder
 
  rsync *.jpg /daten/bilder      # überträgt nur .jpg Dateien nach /daten/bilder
 +
 +
= Backups automatisieren =
 +
 +
Das Backup jedesmal von Hand auszuführen macht natürlich wenig Sinn, wer vergisst das nicht schon mal. Hier werden ein paar Wege davon beschrieben, wie man es am einfachsten lösen könnte.
 +
 +
== halt.local ==
 +
 +
Viele privat genutzte Maschinen werden abends ausgeschaltet. Hier bietet es sich an, rsync durch das Skript <code>/etc/init.d/halt.local</code> aufzurufen. <code>halt.local</code> wird jedesmal aufgerufen, wenn die Maschine heruntergefahren wird.
 +
 +
Beispiel Eintrag wenn man es in die Datei integriert:
 +
 +
#! /bin/sh
 +
#
 +
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.  All rights reserved.
 +
#
 +
# Author: Werner Fink <werner@suse.de>, 1998
 +
#        Burchard Steinbild, 1998
 +
#
 +
# /etc/init.d/halt.local
 +
#
 +
# script with local commands to be executed from init on system shutdown
 +
#
 +
# Here you should add things, that should happen directly before shutting
 +
# down.
 +
#
 +
rsync -abuv --delete --progress /opt/lampp /sicherung
 +
rsync -abuv --delete --progress /home /sicherung
  
 
== Script ==
 
== Script ==
Zeile 183: Zeile 256:
 
== Grafische Oberflächen zu rsync ==
 
== Grafische Oberflächen zu rsync ==
  
=== Grsync ===
+
<gallery>
 
+
Bild:Grsync.png|[http://www.opbyte.it/grsync/ Grsync]
[[Bild:Grsync.png]][[Bild:Grsync1.png]]
+
Bild:Grsync1.png|[http://www.opbyte.it/grsync/ Grsync]
* http://www.opbyte.it/grsync/  
+
Bild:Qsync.png|[http://transamrit.net/projects/qsync/ qsync]
 
+
</gallery>
=== qsync ===
 
[[Bild:Qsync.png]]
 
* http://transamrit.net/projects/qsync/
 
  
 
=== Unison ===
 
=== Unison ===
Eine weitere Möglichkeit, die sich unabhängig von dem Betriebssystem nutzen lässt wäre Unison, welches eine "Syncronisation" über die Plattform hinweg ausführen.
+
Eine weitere Möglichkeit, die sich unabhängig von dem Betriebssystem nutzen lässt wäre [[Unison]], welches eine "Syncronisation" über die Plattform hinweg ausführen.
  
 
Das Programm ist hier näher beschrieben:
 
Das Programm ist hier näher beschrieben:
Zeile 200: Zeile 270:
 
== Quellen ==
 
== Quellen ==
 
* Michael Kofler, Linux (7. Auflage)  S. 212
 
* Michael Kofler, Linux (7. Auflage)  S. 212
* http://de.linwiki.org/index.php/Rsync
+
* [[l:Rsync]] {{Deutsch}}
* http://de.susewiki.org/index.php?title=Backups
+
* [[s:Backups]] {{Deutsch}}
* http://wiki.ubuntuusers.de/rsync
+
* [[u:rsync]] {{Deutsch}}
* http://www.linux-club.de/viewtopic.php?t=31524  
+
* http://www.linux-club.de/viewtopic.php?t=31524 {{Deutsch}}
* [http://www.linux-magazin.de/Artikel/ausgabe/2004/09/backups/backups.html Snapshot-Backups mit Rsync]
+
* [http://www.linux-magazin.de/Artikel/ausgabe/2004/09/backups/backups.html Snapshot-Backups mit Rsync] {{Deutsch}}
* [http://www.linux-magazin.de/Artikel/ausgabe/2002/04/rsync/rsync.html Server schnell und kostengünstig spiegeln]
+
* [http://www.linux-magazin.de/Artikel/ausgabe/2002/04/rsync/rsync.html Server schnell und kostengünstig spiegeln] {{Deutsch}}
* http://www.linux-magazin.de/Service/Listings/2004/09/Rsyc-Backup/backup-rsync
+
* http://www.linux-magazin.de/Service/Listings/2004/09/Rsyc-Backup/backup-rsync {{Deutsch}}
* http://www.linux-magazin.de/Service/Listings/2004/09/Rsyc-Backup/backup-rsync-konv
+
* http://www.linux-magazin.de/Service/Listings/2004/09/Rsyc-Backup/backup-rsync-konv {{Deutsch}}
* http://www.heinlein-support.de/web/wissen/rsync-backup/
+
* http://www.heinlein-support.de/web/wissen/rsync-backup/{{Deutsch}}
* [http://www.jdmz.net/ssh/ Using Rsync and SSH]
+
* [http://www.jdmz.net/ssh/ Using Rsync and SSH] {{Englisch}}
* [http://de.wikipedia.org/wiki/Rsync Wikipedia]
+
* [[w:Rsync]] {{Deutsch}}
* [http://rsync.samba.org/ Homepage von rsync]
+
* [http://rsync.samba.org/ Homepage von rsync] {{Englisch}}
* http://www.debianadmin.com/rsync-backup-web-interfacefrontend-or-gui-tools.html#more-144
+
* http://www.debianadmin.com/rsync-backup-web-interfacefrontend-or-gui-tools.html#more-144 {{Englisch}}
* [http://archive.macosxlabs.org/rsyncx/rsyncx.html rsync mit OSX] - englisch
+
* [http://archive.macosxlabs.org/rsyncx/rsyncx.html rsync mit OSX] {{Englisch}}
* [http://www.andre-aulich.de/perm/backups-mit-rsyncx rsync mit OSX] - deutsch
+
* [http://www.andre-aulich.de/perm/backups-mit-rsyncx rsync mit OSX] {{Deutsch}}
* [http://www.cis.upenn.edu/~bcpierce/unison/ Webpräsenz von Unison]
+
* [http://www.cis.upenn.edu/~bcpierce/unison/ Webpräsenz von Unison] {{Englisch}}
* [http://en.wikipedia.org/wiki/Rsync:en:Rsync Mehr Informationen zu rsync unter Windows in der englischen Wikipedia] (englisch)
+
* [http://en.wikipedia.org/wiki/Rsync:en:Rsync Mehr Informationen zu rsync unter Windows in der englischen Wikipedia] {{Englisch}}
* http://www.debianhelp.co.uk/rsyncweb.htm
+
* http://www.debianhelp.co.uk/rsyncweb.htm {{Englisch}}
  
[[Category:File Server]][[Category:Security]][[Category:Konsole]][[Category:Webbrowser]][[Category:LAMP]]
+
----
 +
[[Backup|Back To Backup]]<br />
 +
[[File-Server|zurück zu File-Server]]<br />
 +
[[Konsole|zurück zur Konsole]]<br />
 +
[[LAMP|zurück zum LAMP]]<br />
 +
[[Category:File Server]][[Category:Security]][[Category:Konsole]][[Category:LAMP]][[Category:Backup]]

Aktuelle Version vom 23. März 2013, 21:49 Uhr

rsync
Rsync.png

Basisdaten
Entwickler: Samba Team
Aktuelle Version: 2.6.3
letzte Veröffentlichung:
Betriebssystem: Linux, Unix, OS X
Kategorie: Backup
Lizenz: GPL
Deutschsprachig: ja
Webseite: http://samba.anu.edu.au/rsync/

Autor: Yehudi

Diese Beschreibung wurde mit folgenden Distributionen getestet:
Diese Anleitung setzt die Kenntnis folgender Artikel vorraus:


Einführung

rsync ist ein Netzwerkprotokoll, welches unter GPL steht. Das Programm ist für Backups bestens geeignet (Kopien von A nach B). Werden auf B Daten geändert, so können diese nicht abgegeglichen werden. Sind bei einem Backup Daten mit der selben Zeitangabe vorhanden, werden diese nicht überschrieben, was Zeit spart. Das Backup-Programm wurde von Entwicklern des Samba-Team, u.a. von Paul Mackeras und Andrew Tridgell, programmiert.

Das Tool kann auch mit SSH kombiniert werden.

Im Gegensatz zu cp, welches man zum Kopieren auf der Konsolen nutzen kann, bietet rsync zahlreiche Steuerungsmöglichkeiten, die unter cp nicht vorhanden sind. cp würde z.B. bereits vorhandene Dateien erneut kopieren.

Installation

Ich setze einfach eine Installation mit APT oder smart vorraus. Dann muss sich nur noch als root in der Konsole angemeldet werden und

apt-get install rsync

oder

smart install rsync

eingetippt werden.

Funktionen über die Konsole

Optionen

  • -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; nur root
  • -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.

Alle Optionen und eine Erläuterung ist mit man rsync oder rsync -h aufzurufen.

Verwendung

Vereinfacht:

rsync quelle ziel

Die Befehlsformel für rsync sieht wie folgt aus:

rsync -OPTIONEN QUELLE ZIEL

Ziel und Quelle sind dabei unabhängig vom Rechner, so dass das BackUp im Rechner auf der gleichen, auf einer anderen Festplatte, im eigenen Netzwerk oder im Internet vorgenommen werden kann.

rsync -OPTIONEN foo:/home/secureme baa:/home/backup


Hinweis:

Wird bei einem Quellordner mit einem "/" beendet, wird lediglich der Inhalt des Ordners kopiert, nicht aber der Quellordner selbst


Spiegeln von Ordnern

rsync -abuv --delete --progress /home/yehudi/  /data1/home/yehudi

oder

rsync -arbuv --delete --progress /home/yehudi/  /data1/home/yehudi

In data1 ist die 2. Festplatte eingebunden, auf der bei mir auch ein SUSE Linux 10.0 wie auf der ersten Festplatte installiert ist.

Syntaxen zum Übertragen

Allgemeine Syntax

rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST                # lokale Quelle --> remote Ziel
rsync [OPTION]... [USER@]HOST:SRC DEST                         # remote Quelle --> lokales Ziel
rsync [OPTION]... SRC [SRC]... DEST                            # nur lokal
rsync [OPTION]... [USER@]HOST::SRC [DEST]                      
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST

Auflistung von Dateien

Hiermit wird der Inhalt des Verzeichnisses dem Host aufgeführt:

rsync irgend.ein.host:/daten

Anwendung im Netzwerk

Mit folgender Befehlssyntax werden alle Files des aktuellen Verzeichnisses, die mit .c enden auf die Remote-Maschine nach src übertragen:

rsync *.c irgend.ein.host:src/

Hier wird der letzte Ordner übertragen (im Ziel ist das dann /daten/dir)

rsync -azv /src/dir irgend.ein.host:/daten

So wird nur der Inhalt des Ordner dir übertragen, aber der Ordner selbst nicht.

rsync -azv /src/dir/ irgend.ein.host:/daten

Übertragung mit User und Port:

rsync -azv /src/dir/ user@irgend.ein.host:9999/daten

Klassisches Beispiel für das Sichern des eigenen Home-Verzeichnisses auf einem Server im Netz.

rsync -abuvz --delete --progress /home/me foobar.com:/backup/home/me

Lokales Übertragen von Dateien

rsync -azv /src/dir /daten     # überträgt das Verzeichnis /src/dir komplett nach /daten
rsync -azv /src/dir/ /daten    # überträgt nur den Inhalt
rsync *.jpg /daten/bilder      # überträgt nur .jpg Dateien nach /daten/bilder

Backups automatisieren

Das Backup jedesmal von Hand auszuführen macht natürlich wenig Sinn, wer vergisst das nicht schon mal. Hier werden ein paar Wege davon beschrieben, wie man es am einfachsten lösen könnte.

halt.local

Viele privat genutzte Maschinen werden abends ausgeschaltet. Hier bietet es sich an, rsync durch das Skript /etc/init.d/halt.local aufzurufen. halt.local wird jedesmal aufgerufen, wenn die Maschine heruntergefahren wird.

Beispiel Eintrag wenn man es in die Datei integriert:

#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.  All rights reserved.
#
# Author: Werner Fink <werner@suse.de>, 1998
#         Burchard Steinbild, 1998
#
# /etc/init.d/halt.local
#
# script with local commands to be executed from init on system shutdown
#
# Here you should add things, that should happen directly before shutting
# down.
#
rsync -abuv --delete --progress /opt/lampp /sicherung
rsync -abuv --delete --progress /home /sicherung

Script

Dieses Script ist regelmäßig über einen CronJob auszuführen:

#!/bin/bash
#
#   Scriptname         backup.sh (Backup mit rsync und KDE Dialogen)
#   Funktion         Backup auf USB, PCMCIA oder 2. Festplatte erstellen
#                     oder einfach von Verzeichnis X nach Verzeichnis Y
#   benötigt            bash, KDE & rsync
#
#   Autor            Hermann Friedhoff
#                     Ungelsheimerstr. 81
#                     47259 Duisburg
#
#   Programm-Status      noch in Arbeit ( wer wird schon fertig??? )
#   Bekannte Fehler      keine, oder??? ( Naubadi is pörfekt )
#   Start               25.07.2003
#   Stand               25.05.2005
#
#   Variablen:      $HOME      das Home Verzeichnis (vom System)
#                  $USER      der angemeldete Benutzer (vom System)
#                  para      Parameter für rsync, für Details "man rsync" in eine Shell eintippen
#                  log_datei   Textdatei mit einer Auflistung der gesicherten Dateien
#                  idzb      Verzeichnis um zu testen ob das Zielverzeichnis beschreibbar ist
#                  quelle      das Verzeichnis das gesichert werden soll
#                  ziel      der Pfad für das zu sichernde Verzeichnis
#                  fehler      0 alles O.K und 1 ein Fehler ist aufgetreten
#

# bei folgenden 3 Variablen kann der Inhalt geändert werden

log_datei="Backup vom `date +'%d.%m.%y - %H:%M:%S'`.txt"
para="-av"
idzb=".test_idzb.tmp"

# ab hier sind keine Änderungen mehr erforderlich

quelle=""
ziel=""
fehler="0"

if quelle=`kdialog --title "Zu sicherndes Verzeichnis auswählen" --getexistingdirectory "$HOME" "*"`
  then
  if ziel=`kdialog --title "Verzeichnis zum sichern auswählen" --getexistingdirectory "$HOME" "*"`
    then
    if [ -f /usr/bin/rsync ]
      then
      rmdir`date +'%d.%m.%y - %H:%M:%S'` "$ziel/$idzb" >/dev/null
      if mkdir "$ziel/$idzb" >/dev/null
        then
        rmdir "$ziel/$idzb" >/dev/null
        fehler=0
        echo "Backup von $quelle" > "$ziel/$log_datei"
        echo "" >> "$ziel/$log_datei"
        if ! rsync $para "$quelle" "$ziel" >> "$ziel/$log_datei"
        then
          kdialog --error "Beim Backup von $quelle nach $ziel ist ein Fehler aufgetreten."
          fehler=1
        fi
        if [ "$fehler" = "0" ]
        then
          kdialog --msgbox "Fertig, Backup von $quelle nach $ziel wurde erstellt."
        else
          kdialog --error "Fehler, Backup konnte nicht korrekt erstellt werden."
        fi
      else
        kdialog --error "Abbruch, schreiben auf $ziel nicht möglich."
      fi
    else
      kdialog --error "Abbruch, das Programm /usr/bin/rsync fehlt."
    fi
  else
    kdialog --error "Abbruch, durch Benutzer $USER."
  fi
else
  kdialog --error "Abbruch, durch Benutzer $USER."
fi

Grafische Oberflächen zu rsync

Unison

Eine weitere Möglichkeit, die sich unabhängig von dem Betriebssystem nutzen lässt wäre Unison, welches eine "Syncronisation" über die Plattform hinweg ausführen.

Das Programm ist hier näher beschrieben:

Quellen


Back To Backup
zurück zu File-Server
zurück zur Konsole
zurück zum LAMP