Zum Inhalt springen

Rsync/Anwendung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''rsync/Anwendung''' - Verzeichnisse synchronisieren
'''rsync/Anwendung''' - Verzeichnisse synchronisieren


=== Beschreibung ===
=== Beschreibung ===
=== Aufruf ===
Bei allen Angaben zur Quelle und/oder des Ziels ist zu beachten, die slashes richtig zu setzen
Bei allen Angaben zur Quelle und/oder des Ziels ist zu beachten, die slashes richtig zu setzen
* Folgendes Beispiel soll dies verdeutlichen
* Folgendes Beispiel soll dies verdeutlichen
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -a /boot/grub /data/backup
</syntaxhighlight>
</syntaxhighlight>
$ rsync -a /boot/grub /data/backup


erzeugt einen Unterordner '''/grub''' in '''/data/backup''', weil kein slash hinter '''/boot/grub''' steht
erzeugt einen Unterordner '''/grub''' in '''/data/backup''', weil kein slash hinter '''/boot/grub''' steht
Zeile 16: Zeile 13:
Wird der Befehl so
Wird der Befehl so
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -a /boot/grub/ /data/backup
</syntaxhighlight>
</syntaxhighlight>
$ rsync -a /boot/grub/ /data/backup


angewandt wird kein Unterordner beim Ziel erzeugt, da nun ein slash hinter '''/boot/grub/''' steht
angewandt wird kein Unterordner beim Ziel erzeugt, da nun ein slash hinter '''/boot/grub/''' steht
Zeile 24: Zeile 21:


<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -a /boot/grub /data/backup
rsync -a /boot/grub/ /data/backup/grub
</syntaxhighlight>
</syntaxhighlight>
$ rsync -a /boot/grub /data/backup
$ rsync -a /boot/grub/ /data/backup/grub


=== Sicherung innerhalb des Systems ===
=== Sicherung innerhalb des Systems ===
Zeile 33: Zeile 30:


<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -av --progress --delete /home /media/Backup/
</syntaxhighlight>
</syntaxhighlight>
# rsync -av --progress --delete /home /media/Backup/


=== Sicherung von lokalem Rechner auf entfernten Rechner ===
=== Sicherung von lokalem Rechner auf entfernten Rechner ===
Zeile 43: Zeile 40:
* Also sieht der Befehl so aus
* Also sieht der Befehl so aus
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -avze ssh /home/benutzer benutzer@example.com:/backups
</syntaxhighlight>
</syntaxhighlight>
$ rsync -avze ssh /home/benutzer benutzer@example.com:/backups


Dies würde eine Kopie von '''/home/benutzer''' vom lokalen Rechner zum entfernten Rechner ins Verzeichnis '''/backups''' kopieren
Dies würde eine Kopie von '''/home/benutzer''' vom lokalen Rechner zum entfernten Rechner ins Verzeichnis '''/backups''' kopieren
Zeile 50: Zeile 47:
===== SSH-Port angeben =====
===== SSH-Port angeben =====
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync -avz -e "ssh -p PORTNUMMER" user@remoteip:/path/to/files/ /local/path/
</syntaxhighlight>
</syntaxhighlight>
$ rsync -avz -e "ssh -p PORTNUMMER" user@remoteip:/path/to/files/ /local/path/


=== Sicherung von entferntem Rechner auf lokalen Rechner ===
=== Sicherung von entferntem Rechner auf lokalen Rechner ===
Zeile 63: Zeile 59:
Der Befehl sieht dann so aus
Der Befehl sieht dann so aus
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync --delete -avzbe ssh benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old
</syntaxhighlight>
</syntaxhighlight>
$ rsync --delete -avzbe ssh benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old


Sollen dem SSH-Befehl weitere Optionen angehängt werden, z.&nbsp;B.&nbsp; -i um einen abweichenden Private-Key bei der Anmeldung zu übergeben, muss der SSH-Befehl in einfache Anführungszeichen gesetzt werden, etwa so
Sollen dem SSH-Befehl weitere Optionen angehängt werden, z.&nbsp;B.&nbsp; -i um einen abweichenden Private-Key bei der Anmeldung zu übergeben, muss der SSH-Befehl in einfache Anführungszeichen gesetzt werden, etwa so
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync --delete -avzbe 'ssh -i /pfad/zur/id_rsa' benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old
</syntaxhighlight>
</syntaxhighlight>
$ rsync --delete -avzbe 'ssh -i /pfad/zur/id_rsa' benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old


Der Pfad zu dem Private-Key File muss dabei absolut sein
Der Pfad zu dem Private-Key File muss dabei absolut sein
Zeile 80: Zeile 76:
* Sollen beispielsweise Dateien mit Sonderzeichen im Dateinamen von einem System mit Codepage 1252 auf den lokalen Rechner (UTF-8) übertragen werden, lautet der Befehl
* Sollen beispielsweise Dateien mit Sonderzeichen im Dateinamen von einem System mit Codepage 1252 auf den lokalen Rechner (UTF-8) übertragen werden, lautet der Befehl
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync --iconv=UTF-8,CP1252 -avze ssh benutzer@example.com:/var/www /home/benutzer/webserver
</syntaxhighlight>
</syntaxhighlight>
$ rsync --iconv=UTF-8,CP1252 -avze ssh benutzer@example.com:/var/www /home/benutzer/webserver


Hierbei werden die Dateinamen aus '''/var/www''' vom Rechner rechner.de beim Übertragen auf den lokalen Rechner in das Verzeichnis '''/home/benutzer/webserver''' von Codepage 1252 nach UTF-8 umgewandelt
Hierbei werden die Dateinamen aus '''/var/www''' vom Rechner rechner.de beim Übertragen auf den lokalen Rechner in das Verzeichnis '''/home/benutzer/webserver''' von Codepage 1252 nach UTF-8 umgewandelt
Zeile 91: Zeile 87:
Wenn also Daten vom Verzeichnis '''/home/user/daten/''' nach '''/home/user/backup/''' gesichert werden sollen und dabei das Verzeichnis '''/home/user/daten/temp/''' nicht berücksichtigt werden soll, muss der Befehl so
Wenn also Daten vom Verzeichnis '''/home/user/daten/''' nach '''/home/user/backup/''' gesichert werden sollen und dabei das Verzeichnis '''/home/user/daten/temp/''' nicht berücksichtigt werden soll, muss der Befehl so
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync [OPTIONEN] --exclude=temp/ /home/user/daten/ /home/user/backup/
</syntaxhighlight>
</syntaxhighlight>
$ rsync [OPTIONEN] --exclude=temp/ /home/user/daten/ /home/user/backup/


aussehen
aussehen
* Das per exclude bezeichnete Verzeichniss ist also kein absoluter Pfad, sonder relativ zum rsync Verzeichniss <Quelle> zu sehen - hier in diesem Beispiel also /home/user/daten/  
 
Das per exclude bezeichnete Verzeichniss ist also kein absoluter Pfad, sonder relativ zum rsync Verzeichniss <Quelle> zu sehen - hier in diesem Beispiel also /home/user/daten/  


Taucht der auszuschließende Ordner '''temp''' noch an weiteren Punkten der Quellhierarchie auf, so werden diese ebenfalls von der Sicherung ausgeschlossen
Taucht der auszuschließende Ordner '''temp''' noch an weiteren Punkten der Quellhierarchie auf, so werden diese ebenfalls von der Sicherung ausgeschlossen
Zeile 101: Zeile 98:
Möchte man außerdem "incremental backups" von sbackup von der Sicherung ausnehmen, so müsste der Befehl so
Möchte man außerdem "incremental backups" von sbackup von der Sicherung ausnehmen, so müsste der Befehl so
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync [OPTIONEN] --exclude=temp/ --exclude=*.inc /home/user/daten/ /home/user/backup/
</syntaxhighlight>
</syntaxhighlight>
$ rsync [OPTIONEN] --exclude=temp/ --exclude=*.inc /home/user/daten/ /home/user/backup/
aussehen


Mehrere auszuschließende Ordner kann man auch in eine Datei speichern und dann im rsync Aufruf per <tt>--exclude-from=FILE</tt> übergeben
Mehrere auszuschließende Ordner kann man auch in eine Datei speichern und dann im rsync Aufruf per <tt>--exclude-from=FILE</tt> übergeben
* Dazu ein praktisches Beispiel wie ein exclude FILE aussehen kann
* Dazu ein praktisches Beispiel wie ein exclude FILE aussehen kann
 
- Downloads
- Downloads
- Ubuntu One
- Ubuntu One
+ .config
+ .config
+ .gconf
+ .gconf
+ .gnome2
+ .gnome2
+ .local
+ .local
- .*
- .*


Angenommen, man möchte das ganze Home Verzeichnis sichern, jedoch einige Verzeichnisse ausschliessen und andere einschliessen, dann führt die o.a
Angenommen, man möchte das ganze Home Verzeichnis sichern, jedoch einige Verzeichnisse ausschliessen und andere einschliessen, dann führt die o.a
Zeile 130: Zeile 124:
* Beispiel
* Beispiel
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
</syntaxhighlight>
  use chroot = true
  use chroot = true
  hosts allow = 192.168.0.0/24
  hosts allow = 192.168.0.0/24
Zeile 145: Zeile 138:
  uid = nobody
  uid = nobody
  gid = nogroup
  gid = nogroup
</syntaxhighlight>


Da ein privilegierter Port (< <tt>1025</tt>) genutzt wird, muss der Aufruf des rsync-Daemons als root erfolgen
Da ein privilegierter Port (< <tt>1025</tt>) genutzt wird, muss der Aufruf des rsync-Daemons als root erfolgen
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync --config=/etc/rsyncd.conf --daemon --no-detach
</syntaxhighlight>
</syntaxhighlight>
# rsync --config=/etc/rsyncd.conf --daemon --no-detach


Testen kann man nun die Erreichbarkeit des Dienstes mit
Testen kann man nun die Erreichbarkeit des Dienstes mit
Zeile 159: Zeile 153:
* Dieses wird in der '''rsyncd.conf''' definiert, z.&nbsp;B.&nbsp; als '''/var/log/rsyncd.log'''
* Dieses wird in der '''rsyncd.conf''' definiert, z.&nbsp;B.&nbsp; als '''/var/log/rsyncd.log'''
* Nach diesem ersten Test kann der rsync-Daemon wie folgt in das System per xinetd eingebunden werden.* Zum Einbinden von rsync in xinetd wird die Datei '''/etc/default/rsync''' benötigt
* Nach diesem ersten Test kann der rsync-Daemon wie folgt in das System per xinetd eingebunden werden.* Zum Einbinden von rsync in xinetd wird die Datei '''/etc/default/rsync''' benötigt
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
</syntaxhighlight>
  RSYNC_ENABLE=inetd
  RSYNC_ENABLE=inetd
  RSYNC_NICE='10'
  RSYNC_NICE='10'
Zeile 178: Zeile 171:
  }
  }


* xinetd starten
xinetd starten
sudo service xinetd restart Diese Beispielkonfiguration ist komplett ohne User Authentifizierung, d.h
<syntaxhighlight lang="bash" highlight="1" line>
* jeder im angegebenen Netzwerk hat Zugriff
sudo service xinetd restart Diese Beispielkonfiguration ist komplett ohne User Authentifizierung, d.h
</syntaxhighlight>
 
Jeder im angegebenen Netzwerk hat Zugriff
* Zu beachten ist, dass die Verbindung zu einem rsync-Dameon eine andere Syntax hat
* Zu beachten ist, dass die Verbindung zu einem rsync-Dameon eine andere Syntax hat
* Auszug aus der Manpage, normaler Aufruf
* Auszug aus der Manpage, normaler Aufruf
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
</syntaxhighlight>
</syntaxhighlight>
$ rsync [OPTION...] [USER@]HOST:SRC... [DEST]
 
und so zu einem rsync-Daemon
und so zu einem rsync-Daemon
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
</syntaxhighlight>
</syntaxhighlight>
$ rsync [OPTION...] [USER@]HOST::SRC... [DEST]
$ rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]


Die beiden "::" machen hier den Unterschied! Besser zu merken ist sicherlich das vorangestellte Netzwerkprotokoll "<tt>rsync://</tt>"
Die beiden "::" machen hier den Unterschied! Besser zu merken ist sicherlich das vorangestellte Netzwerkprotokoll "<tt>rsync://</tt>"
== Links ==
* [http://rsync.samba.org/ Projektseite] [[Image:Grafik5.png|top|alt="{en}"]]
* [http://de.wikipedia.org/wiki/Rsync Rsync]
* [http://www.opbyte.it/grsync/ Grsync] [[Image:Grafik6.png|top|alt="{en}"]]- grafische Oberfläche
* [http://www.linux-user.de/ausgabe/2006/04/090-rsync/ Dateien abgleichen mit rsync] [[Image:Grafik7.png|top|alt="{de}"]]- Artikel aus LinuxUser 04/2006
* [http://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC Skripte/Backup mit rsync] - fertiges Skript für die Datensicherung
{{SORTIERUNG:rsync/Anwendung}}
{{DISPLAYTITLE:rsync/Anwendung}}
[[Kategorie:Linux/Datei/Verwaltung]]


== Benutzeroberflächen ==
== Benutzeroberflächen ==
Zeile 230: Zeile 216:
Unison ist ein komfortables Programm, welches das Protokoll von '''rsync''' nutzt
Unison ist ein komfortables Programm, welches das Protokoll von '''rsync''' nutzt
* Es bietet eine grafische Oberfläche und erlaubt den Abgleich von Verzeichnissen in beide Richtungen, siehe Unison
* Es bietet eine grafische Oberfläche und erlaubt den Abgleich von Verzeichnissen in beide Richtungen, siehe Unison
== Links ==
* [http://rsync.samba.org/ Projektseite] [[Image:Grafik5.png|top|alt="{en}"]]
* [http://de.wikipedia.org/wiki/Rsync Rsync]
* [http://www.opbyte.it/grsync/ Grsync] [[Image:Grafik6.png|top|alt="{en}"]]- grafische Oberfläche
* [http://www.linux-user.de/ausgabe/2006/04/090-rsync/ Dateien abgleichen mit rsync] [[Image:Grafik7.png|top|alt="{de}"]]- Artikel aus LinuxUser 04/2006
* [http://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC Skripte/Backup mit rsync] - fertiges Skript für die Datensicherung
{{SORTIERUNG:rsync/Anwendung}}
{{DISPLAYTITLE:rsync/Anwendung}}
[[Kategorie:Linux/Datei/Verwaltung]]

Version vom 16. März 2025, 03:12 Uhr

rsync/Anwendung - Verzeichnisse synchronisieren

Beschreibung

Bei allen Angaben zur Quelle und/oder des Ziels ist zu beachten, die slashes richtig zu setzen

  • Folgendes Beispiel soll dies verdeutlichen
rsync -a /boot/grub /data/backup

erzeugt einen Unterordner /grub in /data/backup, weil kein slash hinter /boot/grub steht

  • Das heißt, dass die Daten nicht in /data/backup gespeichert werden sondern in /data/backup/grub

Wird der Befehl so

rsync -a /boot/grub/ /data/backup

angewandt wird kein Unterordner beim Ziel erzeugt, da nun ein slash hinter /boot/grub/ steht

  • Das heißt, dass alle Daten von /boot/grub/ tatsächlich in das Verzeichnis /data/backup geschrieben werden
  • Folgende zwei Befehle sollen dies nochmals unterstreichen, da beide exakt das gleiche abgleichen und kopieren
rsync -a /boot/grub /data/backup
rsync -a /boot/grub/ /data/backup/grub

Sicherung innerhalb des Systems

Man kann neben dem Transfer über das Netzwerk rsync natürlich auch nutzen, um ein Backup auf eine andere interne oder externe (dies ist zu bevorzugen) Festplatte zu tätigen

  • Möchte man zum Beispiel alle Benutzerverzeichnisse sichern, so kann man dies bewerkstelligen mit
rsync -av --progress --delete /home /media/Backup/

Sicherung von lokalem Rechner auf entfernten Rechner

In diesem Beispiel soll ein lokales Homeverzeichnis (/home/benutzer) auf einen zweiten Rechner mit dem Namen example.com gesichert werden, zu dem man per SSH Zugang hat

Dazu benötigt man die Option -a, damit alle Rechte erhalten bleiben. -v ist immer gut, damit man sieht, was passiert

  • Der Parameter -z verringert die Datenmenge, die übertragen werden muss, und -e wird benötigt, um ssh anzugeben
  • Also sieht der Befehl so aus
rsync -avze ssh /home/benutzer benutzer@example.com:/backups

Dies würde eine Kopie von /home/benutzer vom lokalen Rechner zum entfernten Rechner ins Verzeichnis /backups kopieren

SSH-Port angeben
rsync -avz -e "ssh -p PORTNUMMER" user@remoteip:/path/to/files/ /local/path/

Sicherung von entferntem Rechner auf lokalen Rechner

In diesem Beispiel soll das Verzeichnis /var/www vom Rechner example.com auf den lokalen Rechner gesichert werden

  • Außerdem sollen alle Dateien, die in /var/www gelöscht wurden, nachdem die letzte Sicherung erstellt wurde, lokal ebenfalls gelöscht werden, nachdem man sie noch ein letztes Mal sichert

Es werden wieder die selben Optionen wie vorher genommen, sowie --delete für das Löschen und -b für Backups gelöschter und veränderter Dateien

  • Diese Backups befinden sich in dem mit --backup-dir angegebenen Verzeichnis

Der Befehl sieht dann so aus

rsync --delete -avzbe ssh benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old

Sollen dem SSH-Befehl weitere Optionen angehängt werden, z. B.  -i um einen abweichenden Private-Key bei der Anmeldung zu übergeben, muss der SSH-Befehl in einfache Anführungszeichen gesetzt werden, etwa so

rsync --delete -avzbe 'ssh -i /pfad/zur/id_rsa' benutzer@example.com:/var/www /home/benutzer/webserver --backup-dir=~/old

Der Pfad zu dem Private-Key File muss dabei absolut sein

  • Dann den ganzen Befehl mit Cron zeitgesteuert automatisieren und die Angst vor einer defekten Festplatte oder versehentlich gelöschten Daten ist vorbei

Abgleich von Dateien zwischen Rechnern mit unterschiedlichen Zeichensätzen

Werden Daten zwischen Systemen mit verschiedenen Zeichensätzen übertragen, werden Dateien mit Sonderzeichen im Dateinamen im Zielverzeichnis möglicherweise falsch benannt

  • Abhilfe schafft hier der Parameter --iconv (seit rsync 3.0.0), mit dem die Sonderzeichen zwischen den unterschiedlichen Zeichensätzen konvertiert werden können
  • Der Parameter erwartet als Werte die Codepages des lokalen und des Remote-Systems
  • Sollen beispielsweise Dateien mit Sonderzeichen im Dateinamen von einem System mit Codepage 1252 auf den lokalen Rechner (UTF-8) übertragen werden, lautet der Befehl
rsync --iconv=UTF-8,CP1252 -avze ssh benutzer@example.com:/var/www /home/benutzer/webserver

Hierbei werden die Dateinamen aus /var/www vom Rechner rechner.de beim Übertragen auf den lokalen Rechner in das Verzeichnis /home/benutzer/webserver von Codepage 1252 nach UTF-8 umgewandelt

Verzeichnisse von der Sicherung ausschließen

Mit dem Parameter --exclude können Verzeichnisse von der Bearbeitung ausgeschlossen werden

  • Dabei ist zu beachten, dass die Quelle immer als Bezugspunkt interpretiert wird

Wenn also Daten vom Verzeichnis /home/user/daten/ nach /home/user/backup/ gesichert werden sollen und dabei das Verzeichnis /home/user/daten/temp/ nicht berücksichtigt werden soll, muss der Befehl so

rsync [OPTIONEN] --exclude=temp/ /home/user/daten/ /home/user/backup/

aussehen

Das per exclude bezeichnete Verzeichniss ist also kein absoluter Pfad, sonder relativ zum rsync Verzeichniss <Quelle> zu sehen - hier in diesem Beispiel also /home/user/daten/

Taucht der auszuschließende Ordner temp noch an weiteren Punkten der Quellhierarchie auf, so werden diese ebenfalls von der Sicherung ausgeschlossen

Möchte man außerdem "incremental backups" von sbackup von der Sicherung ausnehmen, so müsste der Befehl so

rsync [OPTIONEN] --exclude=temp/ --exclude=*.inc /home/user/daten/ /home/user/backup/

Mehrere auszuschließende Ordner kann man auch in eine Datei speichern und dann im rsync Aufruf per --exclude-from=FILE übergeben

  • Dazu ein praktisches Beispiel wie ein exclude FILE aussehen kann
- Downloads
- Ubuntu One
+ .config
+ .gconf
+ .gnome2
+ .local
- .*

Angenommen, man möchte das ganze Home Verzeichnis sichern, jedoch einige Verzeichnisse ausschliessen und andere einschliessen, dann führt die o.a

  • Datei zu folgendem Ergebnis: * die Verzeichnisse 'Downloads', 'Ubuntu One' und alle versteckten Verzeichnisse '.*' werden nicht gesichert
  • von den versteckten Verzeichnissen sollen aber dennoch '.config', '.gconf', '.gnome2' und '.local' gesichert werden
Achtung
die Reihenfolge der Einträge in der Datei ist wichtig

rsync als Daemon

Rsync kann auch als Dienst (Daemon) betrieben werden, der dann auf Port 873 auf eingehende Verbindungen lauscht

  • Das Gespann aus rsync-Client und rsync-Daemon ist effektiver, als den entfernten Server per SAMBA oder NFS einzubinden und auf diesen Freigaben gemountete Verzeichnisse mit rsync "lokal" zu arbeiten
  • Um rsync in diesem Modus zu betreiben, wird eine Datei /etc/rsyncd.conf benötigt
  • Beispiel
 use chroot = true
 hosts allow = 192.168.0.0/24

 transfer logging = true
 log file = /var/log/rsyncd.log
 log format = %h %o %f %l %b

 [Freigabename]
 comment = Public Share
 path = /home/share
 read only = no
 list = yes
 uid = nobody
 gid = nogroup

Da ein privilegierter Port (< 1025) genutzt wird, muss der Aufruf des rsync-Daemons als root erfolgen

rsync --config=/etc/rsyncd.conf --daemon --no-detach

Testen kann man nun die Erreichbarkeit des Dienstes mit

  • rsync server-ip:: oder
  • rsync server-ip::Freigabename

In der Ausgabe werden damit die rsync-Freigaben des Daemons aufgelistet

  • Bei Problemen kann man in das Logfile schauen
  • Dieses wird in der rsyncd.conf definiert, z. B.  als /var/log/rsyncd.log
  • Nach diesem ersten Test kann der rsync-Daemon wie folgt in das System per xinetd eingebunden werden.* Zum Einbinden von rsync in xinetd wird die Datei /etc/default/rsync benötigt
 RSYNC_ENABLE=inetd
 RSYNC_NICE='10'
 RSYNC_IONICE='-c3'* xinetd für rsync in '''/etc/xinetd.d/rsync''' konfigurieren

 service rsync
 {
 disable = no
 socket_type = stream
 wait = no
 user = root
 server = /usr/bin/rsync
 server_args = --daemon
 log_on_failure += USERID
 flags = IPv6
 }

xinetd starten
<syntaxhighlight lang="bash" highlight="1" line>
sudo service xinetd restart Diese Beispielkonfiguration ist komplett ohne User Authentifizierung, d.h

Jeder im angegebenen Netzwerk hat Zugriff

  • Zu beachten ist, dass die Verbindung zu einem rsync-Dameon eine andere Syntax hat
  • Auszug aus der Manpage, normaler Aufruf
rsync [OPTION...] [USER@]HOST:SRC... [DEST]

und so zu einem rsync-Daemon

rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

Die beiden "::" machen hier den Unterschied! Besser zu merken ist sicherlich das vorangestellte Netzwerkprotokoll "rsync://"

Benutzeroberflächen

Grafische Benutzeroberflächen

"./grsync1.png"

Grsync

Zum bequemeren Sichern kann man unter GNOME, Xfce und LXDE eine grafische Benutzeroberfläche installieren

# apt-get install grsync

Anschließend findet man bei Ubuntu-Varianten mit einem Anwendungsmenü einen Programmstarter unter "Systemwerkzeuge -> Grsync"

"./grsync2.png"

Unter "Advanced options" finden sich weitere Einstellungen

  • Teilweise erscheinen Erläuterungen (Tooltips) zu den Optionen, wenn man den Mauszeiger darüber hält
  • Außerdem lassen sich individuelle Optionen eingeben, die rsync unterstützt
  • Im Bild zu sehen ist die Eingabe --exclude=.*, die den Effekt hat, dass alle Konfigurationsdateien ausgeschlossen werden
  • Das mag beispielsweise bei einer Neuinstallation sinnvoll sein

Unison

Unison ist ein komfortables Programm, welches das Protokoll von rsync nutzt

  • Es bietet eine grafische Oberfläche und erlaubt den Abgleich von Verzeichnissen in beide Richtungen, siehe Unison


Links