11.4. Kopieren von Dateien zwischen Linux-Computern

Linux bietet eine breite Palette an Protokollen, mit deren Hilfe Sie Dateien zwischen Computern kopieren können. Welches Protokoll Sie verwenden, hängt davon ab, wie viel Aufwand Sie investieren möchten und ob Sie Kompatibilität mit zukünftigen Windows-Installationen wünschen. Die folgenden Abschnitte behandeln verschiedene Methoden der Dateiübertragung von und zu Linux-Computern. Stellen Sie sicher, dass Sie über eine aktive Netzwerkverbindung verfügen, damit Übertragungen möglich sind. Alle Szenarien setzen eine funktionierende Namensauflösung im Netzwerk voraus. Wenn Ihr Netzwerk keinen Namensdienst umfasst, verwenden Sie IP-Adressen direkt oder fügen Sie die IP-Adressen mit dem jeweils zugehörigen Hostnamen auf allen Clients in /etc/hosts ein.

Die folgenden Beispiel-IP-Adressen und -Hostnamen werden durchgehend in diesem Abschnitt verwendet:

Ziel-Hostname

jupiter.example.com

Ziel-IP

192.168.2.100

Quell-Hostname

venus.example.com

Source IP

192.168.2.101

Benutzer

tux

11.4.1. Kopieren von Dateien mit SSH

Beide Computer, auf die über SSH zugegriffen wird, müssen die folgenden Anforderungen erfüllen:

  1. Wenn Sie einen Hostnamen verwenden, stellen Sie sicher, dass jeder Hostname auf beiden Computern unter /etc/hosts aufgelistet ist (siehe Abschnitt „ /etc/hosts “ (Kapitel 20, Grundlegendes zu Netzwerken, ↑Referenz)). Wenn Sie SSH mit IP-Adressen verwenden, müssen Sie keine Änderungen vornehmen.

  2. Wenn Sie eine Firewall verwenden, öffnen Sie den SSH-Port. Starten Sie in dem Fall YaST und wählen Sie Sicherheit und Benutzer+Firewall aus. Navigieren Sie zu Erlaubte Dienste und prüfen Sie, ob SSH als Teil der Liste angezeigt wird. Wenn nicht, wählen Sie SSH aus Zu erlaubender Dienst und klicken Sie auf Hinzufügen. Klicken Sie auf Weiter und Übernehmen, um die Änderungen anzuwenden und YaST zu schließen.

Um Dateien von einem Computer auf einen anderen kopieren zu können, müssen Sie wissen, wo die Dateien abgelegt sind. Um beispielsweise eine einzelne Datei /srv/foo_file vom Computer jupiter.example.com in das aktuelle Verzeichnis zu kopieren, verwenden Sie den Befehl scp (der Punkt entspricht dem aktuellen Verzeichnis als Zielspeicherort der kopierten Datei):

scp tux@jupiter.example.com:/srv/foo_file .

Um eine vollständige Verzeichnisstruktur zu kopieren, verwenden Sie den rekursiven Modus von scp:

scp -r tux@jupiter.example.com:/srv/foo_directory .

Wenn Ihr Netzwerk keine Namensauflösung bietet, verwenden Sie direkt die IP-Adresse des Servers:

scp tux@192.168.2.100:/srv/foo_file .

Falls Sie den exakten Speicherort Ihrer Dateien nicht kennen, verwenden Sie den Befehl sftp. Das Kopieren von Dateien in KDE oder GNOME mithilfe von SFTP ist sehr leicht. Führen Sie dazu die folgenden Schritte aus:

  1. Drücken Sie Alt-F2.

  2. Geben Sie in der Adressleiste Folgendes ein:

    sftp://tux@jupiter.example.com
  3. Geben Sie das Passwort von tux auf jupiter.example.com ein.

  4. Ziehen Sie die gewünschten Dateien oder Verzeichnisse auf Ihren Desktop oder in ein lokales Verzeichnis und legen Sie sie dort ab.

KDE bietet zusätzlich das Protokoll fish, das verwendet werden kann, wenn sftp nicht zur Verfügung steht. Dieses Protokoll wird auf ähnliche Weise verwendet wie sftp. Ersetzen Sie einfach das sftp-Protokollvorzeichen der URL durch fish:

fish://tux@jupiter.example.com

11.4.2. Übertragen von Dateien mit rsync

Bevor Sie Dateien und Verzeichnisse mit rsync zwischen verschiedenen Computern synchronisieren, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:

  1. Das Paket rsync ist installiert.

  2. Identische Benutzer sind auf beiden Systemen verfügbar.

  3. Auf dem Server ist genügend Speicherplatz frei.

  4. Wenn Sie das Potenzial von rsync voll ausschöpfen möchten, stellen Sie sicher, dass rsync auf dem System installiert ist, das als Server dienen soll.

rsync ist nützlich zum Archivieren oder Kopieren von Daten und kann auch als Daemon zur Bereitstellung von Verzeichnissen auf dem Netzwerk verwendet werden (siehe Erweitertes Setup für rsync-Synchronisierung).

11.4.2.1. rsync-Basismodus

Für die Basisbetriebsart von rsync ist keine besondere Konfiguration erforderlich. rsync spiegelt vollständige Verzeichnisse auf andere Systeme. Die Verwendung unterscheidet sich nur unwesentlich von einem normalen Kopierwerkzeug, wie etwa scp. Mit folgendem Befehl kann ein Backup des Home-Verzeichnisses von tux auf einem Backupserver jupiter angelegt werden:

rsync -Hbaz -e ssh /home/tux/ tux@jupiter:backup

Wenden Sie Ihren Backup mit dem folgenden Befehl an:

rsync -Haz -e ssh tux@jupiter:backup /home/tux/

11.4.2.2. rsync-Daemonmodus

Starten Sie den Dämon rsyncd auf einem Ihrer Systeme, um die volle Funktionalität von rsync zu nutzen. In diesem Modus können Sie Synchronisierungspunkte (Module) erstellen, auf die ein Zugriff ohne Konto möglich ist. Gehen Sie für die Verwendung des Dämons rsyncd wie folgt vor:

Prozedur 11.1. Erweitertes Setup für rsync-Synchronisierung

  1. Melden Sie sich als root an und installieren Sie das Paket rsync.

  2. Konfigurieren Ihrer Synchronisierungspunkte in /etc/rsyncd.conf. Fügen Sie einen Punkt mit Namen in Klammern hinzu und fügen Sie das Schlüsselwort für den Pfad, wie im folgenden Beispiel angegeben, hinzu:

    [FTP]
      path = /srv/ftp
     comment = An Example
  3. Starten Sie den rsyncd-Daemon als root mit rcrsyncd start. Führen Sie zum automatischen Starten des rsync-Dienstes bei jedem Systemstart den Befehl insserv rsyncd aus.

  4. Listen Sie alle Dateien auf, die sich im Verzeichnis /srv/ftp befinden (und beachten Sie dabei den doppelten Doppelpunkt):

    rsync -avz jupiter::FTP
  5. Initiieren Sie die Übertragung, indem Sie ein Zielverzeichnis angeben (in diesem Beispiel wird das aktuelle Verzeichnis durch einen Punkt dargestellt):

    rsync -avz jupiter::FTP .

Standardmäßig werden bei der Synchronisierung mit rsync keine Dateien gelöscht. Um das Löschen von Dateien zu erzwingen, fügen Sie die Option --delete hinzu. Wenn Sie sicherstellen möchten, dass --delete nicht versehentlich neuere Dateien entfernt, verwenden Sie stattdessen die Option --update. Dadurch entstehende Konflikte müssen manuell aufgelöst werden.

11.4.3. Übertragen von Dateien mit Unison

Bevor Sie Dateien und Verzeichnisse mit Unison zwischen verschiedenen Computern synchronisieren, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:

  1. Das Paket Unison ist installiert.

  2. Sowohl auf Ihrem lokalen als auch auf Ihrem entfernten Computer steht ausreichend Speicherplatz zur Verfügung.

  3. Wenn Sie das Potenzial von Unison voll ausschöpfen möchten, stellen Sie sicher, dass Unison auch auf Ihrem entfernten Computer installiert ist und ausgeführt wird.

Falls Sie Hilfe benötigen, führen Sie Unison mit der Option -doc topics aus, um eine vollständige Liste aller verfügbaren Abschnitte zu erhalten.

Für dauerhafte Einstellungen ermöglicht Unison die Erstellung vonProfile, die Unison-Einstellungen wie zu synchronisierende Verzeichnisse (Roots), zu ignorierende Dateitypen sowie andere Optionen angeben. Die Profile werden als Textdateien in ~/.unison mit der Dateierweiterung *.prf gespeichert.

11.4.3.1. Verwenden der grafischen Bedienoberfläche

Zum Synchronisieren verschiedener Verzeichnisse mithilfe der grafischen Bedienoberfläche von Unison gehen Sie wie folgt vor:

  1. Unison starten Sie mit Alt-F2 und dem Befehl unison.

  2. Wenn Sie Unison zum ersten Mal ohne weitere Optionen ausführen, werden Sie aufgefordert, ein Quellverzeichnis anzugeben. Geben Sie das zu synchronisierende Quellverzeichnis ein und klicken Sie auf OK.

  3. Geben Sie das Zielverzeichnis ein. Es kann entweder lokal oder entfernt vorhanden sein. Wenn Sie die Synchronisierung mit einem entfernten Verzeichnis durchführen möchten, wählen Sie die Methode (SSH, RSH oder Socket) aus und geben Sie den Hostnamen und einen optionalen Benutzer ein.

  4. Wenn Sie diese beiden Verzeichnisse noch nie vorher synchronisiert haben, wird ein Dialogfeld mit einer Warnmeldung angezeigt, um Sie darüber zu informieren, dass Unison den Inhalt dieser Verzeichnisse nun vergleicht. Schließen Sie die Warnmeldung mit OK und warten Sie, bis Unison die Informationen der beiden Verzeichnisse gesammelt hat und die Unterschiede im Hauptfenster anzeigt.

    In der linken Spalte wird das von Ihnen ausgewählte Quellverzeichnis angezeigt, in der dritten Spalte das Zielverzeichnis. Wenn die Verzeichnisse Unterschiede aufweisen, wird in der SpalteAktion ein Symbol angezeigt und eine Aktion vorgeschlagen. Ein grüner Pfeil gibt an, dass eine Datei im Quell- oder Zielverzeichnis geändert, hinzugefügt oder gelöscht wurde. Die Richtung des Pfeils gibt die Richtung an, in die die Änderung propagiert werden würde, wenn Sie die Synchronisierungen zu diesem Zeitpunkt durchführen würden. Ein Fragezeichen gibt einen Konflikt an (beide Dateien wurden geändert und Unison kann nicht entscheiden, welche Datei überschrieben werden soll).

    Abbildung 11.1. Vorschlag zur Dateisynchronisierung

    Vorschlag zur Dateisynchronisierung

  5. Um die von Unison für die jeweilige Datei gezeigten Vorschläge zu ändern (beispielsweise die Richtung), wählen Sie die Datei aus und klicken Sie auf Rechts nach Links oder Links nach Rechts. Mit Überspringen schließen Sie eine Datei von der Synchronisierung aus. Das Symbol in der Spalte Aktion ändert sich dann entsprechend.

  6. Klicken Sie zum Starten der Synchronisierung auf Ausführen.

Beim nächsten Start von Unison werden in einem Dialogfeld die vorhandenen Profile mit den jeweils zu synchronisierenden Verzeichnissen angezeigt. Wählen Sie ein Profil aus oder erstellen Sie ein neues Profil (für ein anderes Verzeichnispaar) und führen Sie die Synchronisierung wie oben beschrieben durch.

11.4.3.2. Arbeiten mit der Kommandozeile

Unison kann auch mithilfe der Kommandozeile bedient werden. Zur Synchronisierung eines lokalen Verzeichnisses mit einem entfernten Computer gehen Sie wie folgt vor:

  1. Öffnen Sie eine Shell und geben Sie den folgenden Befehl ein:

    unison -ui text DIR
             ssh://tux@jupiter.example.com//PATH

    Ersetzen Sie die Platzhalter durch die entsprechenden Werte.

  2. Unison fragt Sie, was mit den Dateien und Verzeichnissen zu tun ist, wie zum Beispiel:

    local                  jupiter
               <----  new file   dir [f]
  3. Drücken Sie F, wenn Sie der Empfehlung von Unison folgen möchten. Für weitere Befehle drücken Sie auf ?.

  4. Fahren Sie fort mit y, wenn Sie Ihre Aktualisierungen propagieren möchten.

11.4.4. Kopieren von Dateien mit FTP

Vergewissern Sie sich, dass die folgenden Anforderungen erfüllt sind, bevor Sie Ihren FTP-Server konfigurieren:

  1. Das Paket vsftp ist installiert.

  2. Sie haben root-Zugriff auf Ihren FTP-Server.

  3. Auf Ihrem Computer ist genügend Speicherplatz frei.

[Warning]Nur für private Netzwerke

Diese Einrichtung ist nur für private Netzwerke geeignet. Verwenden Sie es nicht für Standorte, die nicht durch Firewalls geschützt sind, und aktivieren Sie nicht weltweiten Zugriff.

Gehen Sie zur Konfiguration eines FTP-Servers wie folgt vor:

  1. Bereiten Sie den FTP-Server vor:

    1. Öffnen Sie eine Shell, melden Sie sich als root an und speichern Sie eine Sicherungskopie von /etc/vsftpd.conf:

      cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
    2. Erstellen eines Zugriffspunkts für anonymes FTP

      mkdir ~ftp/incoming
      chown -R ftp:ftp ~ftp/incoming
  2. Ersetzen Sie die Konfigurationsdateien entsprechend Ihres bevorzugten Szenarios (erweiterte Konfigurationsoptionen finden Sie auf der man-Seite zu vsftpd.conf .):

    Erlauben von anonymem Lese- und Schreibzugriff
    #
    listen=YES
    									
    # Enable anonymous access to FTP server
    anonymous_enable=YES
    									
    #
    local_enable=YES
    # Enable write access
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    # Write log file 
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    ftpd_banner=Welcome to FTP service.
    anon_root=/srv/ftp
    Gewähren von beschränkten Rechten für FTP-Benutzer (nur Heimnetzwerk)
    chroot_local_users=YES
  3. Starten Sie den FTP-Server:

    rcvsftp start

Geben Sie am Client einfach den URL ftp://HOST in Ihren Browser oder FTP-Client ein. Ersetzen Sie HOST durch den Hostnamen oder die IP-Adresse Ihres Servers. Es sind viele grafische Bedienoberflächen erhältlich, die sich zum Navigieren im Inhalt Ihres FTP-Servers eignen. Um eine Liste zu sehen, geben Sie einfach FTP an der Eingabeaufforderung des YaST-Paket-Managers ein.