Articles

Verwendung des rsync-Befehls zum Kopieren von Dateien unter Ubuntu

rsync ist ein Tool zum Kopieren von Dateien. rsync wird verwendet, um Dateien von Ihrem Computer auf einen Remotecomputer, von einem Remotecomputer auf Ihren Computer, von einem Verzeichnis in ein anderes Verzeichnis auf demselben Computer, von Ihrem Computer auf eine externe Festplatte oder Netzwerkfreigabe usw. zu kopieren. rsync kann auch verwendet werden, um inkrementelle Backups zu erstellen.

In diesem Artikel zeige ich Ihnen, wie Sie mit dem Befehl rsync Dateien und Verzeichnisse kopieren und inkrementelle Backups erstellen. Ich werde Ubuntu für die Demonstration verwenden. Aber jede moderne Linux-Distribution sollte gut funktionieren. Also, lass uns anfangen.

rsync installieren:

rsync sollte bereits auf Ubuntu installiert sein. Wenn es jedoch aus irgendeinem Grund nicht auf Ihrem Computer installiert ist, können Sie es einfach aus dem offiziellen Paket-Repository von Ubuntu mit dem folgenden Befehl installieren:

$ sudo apt install rsync -y

Format des Befehls rsync:

Das Grundformat des rsync-Befehls ist

$ rsync options source destination
  • source kann eine Datei oder ein Verzeichnis oder ein Netzwerkpfad sein.
  • Ziel kann ein Verzeichnis oder ein Netzwerkpfad sein.
  • rsync hat viele Optionen. Mit diesen Optionen können Sie das Verhalten von rsync ändern. Wir werden uns einige der häufigsten Optionen auf dem Weg ansehen.

Wenn Sie rsync verwenden, müssen Sie Folgendes wissen:

  • Wenn Sie ein / nach dem Verzeichnisnamen in die Quelle von rsync wie myfiles/ , bedeutet dies, dass alle Dateien aus dem Verzeichnis nur in das Ziel kopiert werden.
  • Wenn Sie kein / nach dem Verzeichnisnamen in die Quelle von rsync einfügen, z. B. myfiles, kopiert rsync alle Dateien aus dem Verzeichnis in das Ziel, einschließlich des Verzeichnisses.
  • Wenn Sie einen Zielverzeichnispfad eingeben, der nicht existiert, erstellt rsync ihn automatisch nach Bedarf.

Lokale Dateien und Verzeichnisse mit rsync sichern:

Mit rsync können Sie Dateien sehr schnell von einem Verzeichnis in ein anderes Verzeichnis auf Ihrem Computer kopieren.

Angenommen, Sie haben einige wichtige Dateien im Verzeichnis ~/Downloads. Jetzt möchten Sie alle Dateien aus dem Verzeichnis ~ / Downloads auf Ihrem USB-Stick / dev / sdb1 im Verzeichnis / mnt / myusb sichern.

Lassen Sie uns einige Dummy-Dateien im Verzeichnis ~/Downloads erstellen.

$ berühren ~/Downloads/test{1..100}

Kopieren Sie nun alle Dateien aus dem Verzeichnis ~/Downloads mit dem folgenden rsync-Befehl in das Verzeichnis /mnt/myusb:

$ rsync -avzh ~/Downloads/ /mnt/myusb

Die Dateien sollten kopiert werden.

Wie Sie sehen können, befinden sich die Dateien im Verzeichnis /mnt/myusb.

Sie können auch das gesamte Verzeichnis ~/Downloads wie folgt auf Ihren USB-Stick kopieren:

$ rsync -avzh ~/Downloads /mnt/myusb

Wie Sie sehen können, wird das gesamte Verzeichnis auf den USB-Stick kopiert.

Wenn Sie alle Dateien aus dem Verzeichnis ~/Downloads in ein anderes Verzeichnis (sagen wir mydownloads/) auf Ihrem USB-Stick kopieren möchten, führen Sie rsync wie folgt aus:

$ rsync -avzh ~/Downloads/ /mnt/myusb/mydownloads

Wie Sie sehen können, werden die Dateien korrekt auf den USB-Stick kopiert.

Remote-Dateien und Verzeichnisse mit rsync sichern:

Mit rsync können Sie Dateien und Verzeichnisse von einem Remote-Server zu Sicherungszwecken auf Ihr lokales Dateisystem oder USB-Stick kopieren. Sie können auch Dateien und Verzeichnisse von Ihrem lokalen Dateisystem auf Ihren Remote-Backup-Server kopieren. rsync verwendet SSH zum Kopieren von Dateien und Verzeichnissen zum / vom Remote-Server.

Sie müssen das SSH-Serverpaket (openssh-Server unter Ubuntu) und das rsync-Paket auf dem Remote-Server installiert haben, wenn Sie rsync für Dateisicherungszwecke verwenden möchten.

Angenommen, Sie möchten den gesamten Inhalt (einschließlich des Verzeichnisses) des Verzeichnisses /www von Ihrem Remote-Server kopieren www.example1.com zu Ihrem USB-Stick auf dem Pfad / mnt / myusb auf Ihrem lokalen Dateisystem montiert.

Dazu können Sie den folgenden Befehl rsync verwenden:

$ rsync -avzh [email protected]:/www /mnt/myusb

HINWEIS: Hier ist root der Remote-Benutzername, www.example1.com ist der DNS-Name des Remote-Servers und /www ist ein Verzeichnispfad auf dem Remote-Server. Sie können auch die IP-Adresse des Remote-Servers anstelle des DNS-Namens verwenden, wenn Sie möchten.

Möglicherweise wird die folgende Meldung angezeigt, wenn Sie zum ersten Mal eine Verbindung zum Remote-Server herstellen. Geben Sie einfach yes ein und drücken Sie dann <Geben Sie>ein.

Geben Sie nun das Passwort für den Remote-Benutzer ein (in meinem Fall ist es root) und drücken Sie <Geben Sie>ein.

Alle Dateien und Verzeichnisse im Verzeichnis /www einschließlich des Verzeichnisses /www sollten auf den USB-Stick kopiert werden, wie Sie im Screenshot unten sehen können.

Sie können mit rsync auch Dateien von Ihrem lokalen Dateisystem auf Ihren Remote-Server kopieren.

Im vorherigen Beispiel haben Sie eine Sicherungskopie des Verzeichnisses /www auf dem Remote-Server erstellt. Nehmen wir an, einige der Dateien auf dem Remote-Server sind beschädigt und Sie möchten sie aus der Sicherung wiederherstellen.

Führen Sie dazu den Befehl rsync wie folgt aus:

$ rsync -avzh /mnt/myusb/www/ [email protected]:/www

Geben Sie nun das Passwort Ihres Remote-Servers ein und drücken Sie <Geben Sie>ein.

Die Dateien sollten von Ihrem lokalen Dateisystem auf den Remote-Server kopiert werden.

Erstellen inkrementeller Backups mit rsync:

Bei dieser Art von Backup werden Quell- und Zielverzeichnis synchron gehalten. Wenn eine Datei zum Quellverzeichnis hinzugefügt wird, wird sie auch zum Zielverzeichnis hinzugefügt. Wenn eine Datei oder ein Verzeichnis aus dem Quellverzeichnis entfernt wird, wird sie auch aus dem Zielverzeichnis entfernt.

rsync ist ein großartiges Tool für inkrementelle Backups.Nehmen wir an, Sie haben ein Verzeichnis ~/cloud im HOME-Verzeichnis Ihres Benutzers. Jetzt möchten Sie eine inkrementelle Sicherung des Verzeichnisses auf einem USB-Stick durchführen, der auf dem Pfad / mnt / usb1 auf einem Remote-Server installiert ist backup.example.com .

HINWEIS: Sie müssen openssh-server- und rsync-Pakete auf Ihrem Remote-Server installiert haben, damit dies funktioniert.

Um ein inkrementelles Backup der ~/cloud zu erstellen, führen Sie den folgenden Befehl aus:

$ rsync -avzh –delete –progress ~/cloud/ [email protected]:/mnt/usb1/backup

Geben Sie nun das Passwort für Ihren Remote-Benutzer ein und drücken Sie <Geben Sie>ein.

Der Inhalt des Verzeichnisses ~/cloud sollte auf den USB-Stick des Remote-Servers kopiert werden.

Wie Sie sehen können, werden alle Dateien auf den USB-Stick kopiert, der auf dem Remote-Backup-Server installiert ist.

Lassen Sie uns nun eine Datei aus dem lokalen Dateisystem entfernen und sehen, was passiert.

$ rm ~/cloud/packages.txt

Verwenden Sie nun rsync, um die Verzeichnisse erneut mit demselben Befehl wie zuvor zu synchronisieren.

$ rsync -avzh –delete –progress ~/cloud/ [email protected]:/mnt/usb1/backup

Wie Sie sehen können, werden die Dateipakete.txt wird auch vom USB-Stick entfernt, der auf dem Remote-Sicherungsserver installiert ist.

Wohin als nächstes:

Weitere Informationen zu rsync finden Sie in der Manpage von rsync. Die Manpage von rsync enthält eine detaillierte Beschreibung aller Optionen von rsync. Ich empfehle Ihnen dringend, das zu überprüfen.

Sie können mit dem folgenden Befehl auf die Manpage von rsync zugreifen:

$ man rsync

So können Sie verwenden Sie rsync, um Dateien zu kopieren und inkrementelle Backups auf Ubuntu zu erstellen. Vielen Dank für das Lesen dieses Artikels.