GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Rsync-Befehlsbeispiele für Anfänger

In diesem umfassenden Rsync-Tutorial lernen wir nützliche Rsync-Befehlsbeispiele zum Kopieren, Sichern und Synchronisieren von Dateien in Linux-Betriebssystemen kennen.

1. Eine kurze Einführung in Rsync

Es gibt viele Sicherungs-/Dateisynchronisierungstools für Linux- und Unix-Plattformen. Rsync gilt als eines der am weitesten verbreiteten und vertrauenswürdigsten Backup-Tools.

Rsync steht für R Emote Synchronisieren , ist ein schnelles und vielseitiges Werkzeug zum Kopieren von Dateien. Es kann lokal, zu/von einem anderen Host über jede entfernte Shell oder zu/von einem entfernten rsync-Daemon kopieren.

Rsync ist ein unidirektionales und inkrementelles Dateiübertragungstool, das Delta-Übertragung verwendet Algorithmus. Es reduziert die über das Netzwerk gesendete Datenmenge erheblich, indem nur die Unterschiede zwischen den Quell- und Zieldateien übertragen werden.

Es wird sowohl von einzelnen Benutzern als auch von Hunderttausenden von Organisationen, von kleinen bis hin zu großen Unternehmen, für Backups und Spiegelung verwendet.

Viele einzelne Benutzer verwenden Rsync auch als verbesserte copy Befehl für den täglichen Gebrauch.

Rsync ist eines der ältesten Open-Source-Programme, das heute noch verwendet wird. Dieses Programm wurde erstmals im Juni 1996 angekündigt und ursprünglich von Andrew Tridgell entwickelt und Paul Mackerras . Es wird derzeit von Wayne Davison gepflegt .

Rsync ist eine plattformübergreifende Open-Source-Sicherungsanwendung, die Linux, Unix-Distributionen wie FreeBSD, NetBSD, OpenBSD, macOS und Windows (über Cygwin) unterstützt.

Rsync ist in C geschrieben Programmiersprache als Single-Thread-Anwendung und ist unter GPL frei verfügbar.

1.1. Rsync-Funktionen

Rsync hat im Vergleich zu seinen Gegenstücken viele Funktionen. Hier sind einige bemerkenswerte Funktionen von Rsync:

  • Rsync kann ganze Verzeichnisbäume und Dateisysteme aktualisieren.
  • Es kann symbolische Links, feste Links, Dateibesitz, Berechtigungen, Geräte und Zeiten beibehalten.
  • Internes Pipelining reduziert die Latenz für mehrere Dateien.
  • Kann rsh, ssh oder direkte Sockets als Transport verwenden.
  • Unterstützt anonymes rsync, das ideal zum Spiegeln ist.

2. Rsync unter Linux installieren

Rsync ist in vielen Linux- und Unix-ähnlichen Betriebssystemen vorinstalliert. Falls es auf Ihrem Linux-System nicht verfügbar ist, können Sie Rsync mit dem Standard-Paketmanager Ihrer Distribution installieren.

Rsync ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar.

Installieren Sie Rsync unter Alpine Linux:

$ sudo apk add rsync

Installieren Sie Rsync unter Arch Linux:

$ sudo pacman -S rsync

Installieren Sie Rsync unter Fedora, CentOS, RHEL, AlmaLinux, Rocky Linux:

$ sudo dnf install rsync

Installieren Sie Rsync unter Debian, Ubuntu, Linux Mint, Pop!_OS:

$ sudo apt install rsync

Installieren Sie Rsync auf openSUSE:

$ sudo zypper install rsync

Installieren Sie Rsync auf Solus:

$ sudo eopkg install rsync

Vorsicht: Rsync muss auf beiden Systemen installiert sein, wenn Sie Dateien zwischen zwei Systemen synchronisieren möchten.

3. Rsync-Befehlssyntax

Ähnlich wie cp , rcp und scp Befehlen erfordert rsync auch die Angabe einer Quelle und eines Ziels, von denen mindestens eines lokal sein muss .

Vorsicht: Rsync unterstützt das Kopieren von Dateien zwischen zwei Remote-Hosts nicht.

Die allgemeine Syntax von Rsync ist unten angegeben:

Lokal zu Lokal:

rsync [OPTION…] SRC… [DEST]

Lokal zu Remote:

rsync [OPTION…] SRC… [[email protected]]HOST:DEST

Remote zu lokal:

rsync [OPTION…] [[email protected]]HOST:SRC… [DEST]

Hier,

  • OPTION - Liste der Rsync-Optionen
  • SRC - Quelldatei oder -verzeichnis
  • DEST - Zieldatei oder -verzeichnis
  • [email protected] - Remote-Benutzername und Hostname oder IP-Adresse

3.1. Rsync-Optionen

Rsync hat zahlreiche Optionen. Die am häufigsten verwendeten Rsync-Optionen sind unten aufgeführt:

  • -a :Archivmodus. Der Archivmodus weist Rsync an, einen Archivierungsvorgang durchzuführen und Verzeichnisse und ihre untergeordneten Elemente rekursiv zu kopieren, wobei alle Dateiattribute wie Dateiberechtigungen, Eigentümerschaft, Symlinks und Zeitstempel beibehalten werden. Es entspricht -rlptgoD Optionen.
  • -v :Ausführlicher Modus.
  • -u - Dateien überspringen, die auf der Empfängerseite neuer sind. Nützlich, um das Überschreiben von Zieldateien zu vermeiden.
  • -z :Dateien komprimieren.
  • -r :Kopiert rekursiv das gesamte Verzeichnis und seinen Inhalt. Es kann ausgeschlossen werden, wenn -a verwendet wird Flagge.
  • -P :Fortschrittsbalken während der Dateiübertragung anzeigen. Diese Option wird auch verwendet, um teilweise übertragene Dateien beizubehalten.
  • --delete :Überflüssige Dateien aus dem Zielverzeichnis löschen. Mit anderen Worten, diese Option löscht alle Verzeichnisse und Dateien, die nicht in der Quelle, aber im Ziel verfügbar sind. Nützlich beim Synchronisieren von Dateien und Verzeichnissen.
  • -x :rsync darauf beschränken, Daten innerhalb der Dateisystemgrenzen zu synchronisieren. Es weist Rsync an, Dateisystemgrenzen nicht zu überschreiten. Wenn Sie ein Dateisystem in Ihrem Home-Verzeichnis gemountet haben, wird dieses während des Synchronisierungsvorgangs übersprungen.
  • -h :Zahlen in einem für Menschen lesbaren Format ausgeben.

Wie bereits erwähnt, bietet Rsync viel mehr Optionen. Aber die oben genannten sind meistens genug für den täglichen Betrieb.

4. Nützliche Rsync-Befehlsbeispiele für Anfänger

Mit Rsync können wir problemlos einzelne Dateien oder mehrere Dateien übertragen, die einem Muster innerhalb des lokalen Systems entsprechen, und auch Dateien entweder zu oder von einem Remote-System übertragen.

Hier ist die Liste der am häufigsten verwendeten Rsync-Befehle mit Beispielen für Anfänger und Fortgeschrittene.

1. Dateien lokal kopieren oder synchronisieren

Rsync wird häufig als Alternative zu cp verwendet Befehl zum Sichern und Kopieren von Dateien von einem Ort zum anderen.

Zum Sichern oder Kopieren einer Datei, zum Beispiel ostechnix.txt , mit Rsync, tun Sie einfach:

$ rsync -av ostechnix.txt ostechnix-backup.txt

Dieser Befehl kopiert den Inhalt von ostechnix.txt Datei nach ostechnix-backup.txt im Archivmodus im aktuellen Verzeichnis. Dies wird hauptsächlich verwendet, wenn Konfigurationsdateien gesichert werden, bevor Änderungen daran vorgenommen werden.

Beispielausgabe:

sending incremental file list
ostechnix.txt

sent 138 bytes  received 35 bytes  346.00 bytes/sec
total size is 30  speedup is 0.17

Wenn Sie die Sicherungsdatei an einem anderen Ort speichern möchten, geben Sie einfach den Zielpfad wie unten an:

$ rsync -av ostechnix.txt mybackup/ostechnix-backup.txt

Dadurch wird die angegebene Datei nach mybackup kopiert Verzeichnis.

Um mehrere Dateien zu kopieren, geben Sie sie wie folgt durch Leerzeichen getrennt an:

$ rsync -av file1 file2 file3 mybackup/

2. Kopieren oder synchronisieren Sie Dateien auf ein externes Laufwerk

Sie können die Dateien auch auf eine andere Partition und sogar auf ein anderes Laufwerk kopieren.

Ich kopiere zum Beispiel die ostechnix.txt Datei auf meine externe Seagate-Festplatte, die unter /media/sk/ gemountet ist Ort mit dem Befehl:

$ rsync -auv ostechnix.txt /media/sk/seagate/myfiles

Hier das -u switch wird verwendet, um Dateien zu überspringen, die auf dem Empfänger neuer sind, und -v wird verwendet, um eine ausführliche Ausgabe zu drucken.

Vorsicht: Um den Einhängepunkt Ihres externen Laufwerks zu finden, verwenden Sie lsblk Befehl.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/sk/seagate

3. Verzeichnisse lokal kopieren oder synchronisieren

Um ein Verzeichnis einschließlich seiner Unterverzeichnisse und Dateien mit Rsync in ein anderes Verzeichnis zu kopieren, verwenden Sie -a Flagge wie unten:

$ rsync -av dir1/ dir2

Rsync erstellt automatisch das Zielverzeichnis, wenn es nicht existiert.

Vorsicht: Hier spielt der abschließende Schrägstrich (/) eine wichtige Rolle.

Wenn Sie den Inhalt eines Verzeichnisses übertragen möchten (aber nicht das Verzeichnis selbst ) in ein anderes Verzeichnis stellen Sie sicher, dass Sie den abschließenden / angegeben haben am Ende des Quellverzeichnisses wie unten:

$ rsync -av path/to/source_directory/ path/to/destination_directory

Ein abschließender Schrägstrich im Quellverzeichnis vermeidet die Erstellung einer zusätzlichen Verzeichnisebene am Ziel.

So übertragen Sie ein Verzeichnis selbst und alle seine Kinder von einem Verzeichnis in ein anderes:

$ rsync -av path/to/source_directory path/to/destination_directory

Bitte beachten Sie, dass ich das abschließende / am Ende des Quellverzeichnisses im obigen Befehl nicht hinzugefügt habe. Dadurch wird das gesamte Quellverzeichnis zum Ziel kopiert.

Um mehrere Verzeichnisse zu kopieren, geben Sie sie wie folgt durch Leerzeichen getrennt an:

$ rsync -av dir1/ dir2/ dir3

Dadurch wird der Inhalt von dir1 kopiert und dir2 nach dir3 Verzeichnis.

Wenn Sie rsync zum ersten Mal ausführen, dauert es eine Weile, bis alle Dateien von der Quelle zum Ziel kopiert werden, abhängig von der Anzahl der Dateien und der Dateigröße.

Da Rsync ein inkrementelles Backup-Tool ist, kopiert es nur die Dateiänderungen von der Quelle zum Zielspeicherort in den folgenden Zeiten.

Wenn bereits Dateien kopiert wurden, werden sie einfach weggelassen. Daher wird die Dateiübertragungsrate in den folgenden Zeiten immer schneller sein.

4. Synchronisieren oder übertragen Sie Dateien vom lokalen System auf das entfernte System

Vorsicht: Um Dateien zwischen zwei Systemen zu synchronisieren, sollte Rsync auf beiden Systemen installiert sein. Außerdem sollten beide Systeme über SSH kommunizieren können und das Zielverzeichnis muss Schreib-Lese-Rechte haben.

Um Dateien von Ihrem lokalen System auf ein Remote-System im Netzwerk zu kopieren oder zu synchronisieren, lautet der Befehl:

$ rsync path/to/local_file remote_host:path/to/remote_directory

Beispiel:

$ rsync -av file1 [email protected]:/home/ostechnix/data

Beispielausgabe:

[email protected]'s password: 
sending incremental file list
file1

sent 129 bytes  received 35 bytes  46.86 bytes/sec
total size is 30  speedup is 0.18

Hier,

  • -a :Archivmodus, um Attribute zu erhalten.
  • file1 :Quelldatei.
  • [email protected] :Benutzername und IP-Adresse des Remote-Systems.
  • /home/ostechnix/data :Entfernter Standort.

Wir können auch mehrere Rsync-Optionen kombinieren, um bestimmte Aufgaben auszuführen.

Der folgende Befehl überträgt die angegebene Datei in [a ]archivieren (um Attribute beizubehalten) und komprimiert ([z ]ipped) Modus mit [v ]erbose Ausgabe und [h ]Menschenlesbares Format.

$ rsync -azvh file1 [email protected]:/home/ostechnix/data

5. Synchronisieren oder übertragen Sie Dateien vom Remote-System auf das lokale System

Um Dateien von einem entfernten System auf ein lokales System zu kopieren oder zu synchronisieren, kehren Sie einfach die Quell- und Zielpfade im obigen Befehl um:

$ rsync -a [email protected]:/home/ostechnix/data/file1 Downloads/file1

Dieser Befehl überträgt die Datei (z.B. /home/ostechnix/data/file1 ) vom entfernten System zu den Downloads unseres lokalen Systems Verzeichnis.

6. Synchronisieren oder übertragen Sie ein Verzeichnis und seinen gesamten Inhalt von einem lokalen auf ein entferntes System

Um ein Verzeichnis und seinen gesamten Inhalt (z. B. Unterverzeichnisse und die Dateien) zu kopieren oder zu synchronisieren, können wir -r verwenden Flagge:

$ rsync -r Pfad/zum/lokalen_Verzeichnis entfernter_Host:Pfad/zum/entfernten_Verzeichnis

Beispiel:

$ rsync -rv dir1/ [email protected]:/home/ostechnix/data

Hier -r wird verwendet, um das Verzeichnis und seinen Inhalt rekursiv zu kopieren.

7. Synchronisieren oder übertragen Sie ein Verzeichnis und seinen gesamten Inhalt von einem entfernten auf ein lokales System

Um ein Verzeichnis zusammen mit seinem Inhalt von einem entfernten System auf Ihr lokales System zu kopieren oder zu synchronisieren, verwenden Sie diesen Befehl:

$ rsync -r remote_host:path/to/remote_directory/ path/to/local_directory

Beispiel:

$ rsync -rv [email protected]:/home/ostechnix/data/ dir1/

Dieser Befehl kopiert den Inhalt von data/ Verzeichnis vom entfernten System in unser lokales Verzeichnis namens dir1/ .

8. Verzeichnisse rekursiv synchronisieren oder übertragen, Attribute und Softlinks beibehalten und bereits übertragene Dateien ignorieren

Wie bereits erwähnt, können wir mehrere Rsync-Schalter in einem einzigen Befehl kombinieren, um eine bestimmte Aufgabe auszuführen.

Zum Beispiel, um ein Verzeichnis [r]ekursiv zu kopieren oder zu synchronisieren, im [a]rchive-Modus, um Attribute zu erhalten, enthaltene Soft[l]inks aufzulösen, den [v]erbose-Modus und das Ignorieren bereits kopierter Dateien [u]noch neuer, zu verwenden -rauvL Flagge wie unten:

$ rsync -rauvL dir1/ [email protected]168.122.25:/home/ostechnix/data

9. Dateien löschen, die sich nicht im Quellverzeichnis befinden

Manchmal möchten Sie möglicherweise sowohl Quell- als auch Zielverzeichnisse synchron halten. Das heißt – Sie möchten auf beiden Seiten den gleichen Inhalt pflegen. In diesem Fall können Sie --delete verwenden wechseln.

Sie sollten sehr vorsichtig sein bei Verwendung von --delete Flagge. Denn Rsync löscht alle Verzeichnisse und Dateien, die nicht in der Quelle, sondern nur im Ziel verfügbar sind.

Sehen wir uns ein Beispiel an.

Dies ist der aktuelle Inhalt meines Zielverzeichnisses:

$ ls data/
nettle-3.4.1rc1-3.fc31.x86_64.rpm  usr

Ich werde ein neues Verzeichnis mit dem Namen ostechnix erstellen und eine neue Datei namens file 1 an meinem Zielort.

$ mkdir data/ostechnix
$ touch data/file1

Lassen Sie uns prüfen, ob sie erstellt wurden:

$ ls data/
file1  nettle-3.4.1rc1-3.fc31.x86_64.rpm  ostechnix  usr

Denken Sie an das neu erstellte Verzeichnis mit dem Namen ostechnix und die neue Datei file1 sind im Quellverzeichnis nicht verfügbar.

Jetzt führe ich den folgenden Rsync-Befehl mit --delete aus Schalter in meinem lokalen System (Quelle):

$ rsync -av --delete dir1/ [email protected]:/home/ostechnix/data

Beispielausgabe:

sending incremental file list
deleting ostechnix/
deleting file1
./

sent 712 bytes  received 54 bytes  218.86 bytes/sec
total size is 1,400,477  speedup is 1,828.30

Wie Sie in der obigen Ausgabe sehen können, löscht Rsync das neue Verzeichnis und die Datei.

Lassen Sie uns nun zum Zielsystem gehen und prüfen, ob sie gelöscht wurden oder nicht:

$ ls data/
nettle-3.4.1rc1-3.fc31.x86_64.rpm  usr

Sie sind weg!

Nochmals, ich warne Sie! Sie MÜSSEN SEHR VORSICHTIG SEIN bei Verwendung von --delete schalten. Sie könnten versehentlich wichtige Dateien löschen.

10. Quelldateien nach erfolgreicher Übertragung löschen

Das ist etwas ähnlich dem vorherigen Befehl. Aber bei dieser Methode löschen wir die Quelldateien nach erfolgreicher Synchronisierung oder Übertragung auf das Zielsystem.

Um Quelldateien nach erfolgreicher Übertragung mit Rsync zu entfernen, verwenden Sie --remove-source-files wechseln.

$ rsync -av --remove-source-files ostechnix.txt [email protected]:/home/ostechnix/data

Beispielausgabe:

sending incremental file list
ostechnix.txt

sent 137 bytes  received 43 bytes  51.43 bytes/sec
total size is 30  speedup is 0.17

Sie können auch Dateien in einem Quellverzeichnis nach erfolgreicher Übertragung entfernen:

$ rsync -arv --remove-source-files dir1/ [email protected]:/home/ostechnix/data

Bitte beachten Sie, dass dadurch nur die Dateien aus dem Quellverzeichnis entfernt werden, nicht aber das Quellverzeichnis selbst. Nach erfolgreicher Übertragung haben Sie immer noch ein leeres Quellverzeichnis.

11. Fortschrittsbalken beim Übertragen von Dateien anzeigen

Standardmäßig zeigt Rsync beim Übertragen von Dateien keinen Fortschrittsbalken an. Die Zusammenfassung wird erst nach erfolgreicher Übertragung angezeigt. Wenn Sie wissen wollen, was hinter den Kulissen vor sich geht, können Sie sich mit -P den Fortschrittsbalken anzeigen lassen wechseln.

Der folgende Befehl überträgt dir1/ Verzeichnis mit [Fortschrittsbalken] zum entfernten System:

$ rsync -avP dir1/ [email protected]:/home/ostechnix/data

Beispielausgabe:

sending incremental file list
./
video.mp4
    839,974,565 100%   43.78MB/s    0:00:18 (xfr#1, to-chk=13/15)
video.srt
        127,340 100%  405.07kB/s    0:00:00 (xfr#2, to-chk=12/15)

sent 840,307,476 bytes  received 69 bytes  39,084,071.86 bytes/sec
total size is 840,101,905  speedup is 1.00

Dies ist nützlich, wenn Sie große Datenmengen übertragen. Sie können den Fortschritt des Dateikopiervorgangs verfolgen, um zu erfahren, wie viele Daten derzeit übertragen werden und wie lange die Übertragung der Datei verstrichen ist.

Das -P Das Flag ist auch nützlich, um teilweise heruntergeladene oder übertragene Dateien fortzusetzen .

Sie können auch --info=progress2 verwenden wechseln, um den globalen Fortschritt anzuzeigen, was -P entspricht .

$ rsync -av --info=progress2 dir1/ [email protected]:/home/ostechnix/data

12. Synchronisieren oder übertragen Sie Dateien über SSH

Die neuere Version von Rsync ist für die Verwendung von ssh konfiguriert als Standard-Remote-Shell, sodass Sie keine zusätzlichen Optionen angeben müssen, um Dateien über SSH zu synchronisieren.

Falls Sie eine ältere Rsync-Version verwenden, können Sie für alle Fälle -e ssh verwenden Flag zum Kopieren oder Synchronisieren von Dateien zwischen lokalem System und Remote-System über SSH wie unten.

$ rsync -e ssh file.json [email protected]:/home/ostechnix/data

Wenn Sie auch die Dateien löschen möchten, die in der Quelle nicht vorhanden sind, fügen Sie --delete hinzu Schalten Sie den obigen Befehl ein:

$ rsync -e ssh --delete file.json [E-Mail-geschützt]:/home/ostechnix/data

13. Synchronisieren oder übertragen Sie Dateien über SSH mit einem anderen Port

Möglicherweise haben Sie den standardmäßigen SSH-Port aus Sicherheitsgründen geändert.

In diesem Fall müssen Sie den SSH-Port explizit angeben, wie unten gezeigt:

$ rsync -e 'ssh -p 2222' -P file.json [email protected]:/home/ostechnix/data

Dadurch werden Dateien über SSH unter Verwendung eines benutzerdefinierten Ports kopiert oder synchronisiert (2222 ) und mit Fortschrittsbalken.

14. Legen Sie die maximale und minimale Dateigröße für die Übertragung fest

Wenn Sie eine große Menge an Dateien übertragen, möchten Sie möglicherweise keine Dateien übertragen, die größer oder kleiner als eine bestimmte Größe sind. Rsync verfügt ausschließlich zu diesem Zweck über zwei Schalter.

Sie können --max-size verwenden Flag, wenn Sie keine Datei übertragen möchten, die größer als die angegebene Größe ist.

Beispielsweise verhindert der folgende Befehl die Übertragung von Dateien, die größer als 100 MB sind:

$ rsync -av -P --max-size=100M dir1/ [email protected]:/home/ostechnix/data

Sie können B (Bytes), K (Kilo), M (Mega), G (Giga), T (Tera) oder P (Peta) verwenden, um die Größen anzugeben.

Wenn Sie keine Datei kleiner als die angegebene Größe übertragen möchten, verwenden Sie auf ähnliche Weise --min-size Flagge:

$ rsync -av -P --min-size=100M dir1/ [email protected]:/home/ostechnix/data

15. Leere Verzeichnisse bei der Synchronisierung ignorieren

Möglicherweise haben Sie am Quellspeicherort leere Verzeichnisse. Wenn Sie einige nutzlose, leere Verzeichnisse von der Synchronisierungsliste ausschließen möchten, verwenden Sie --prune-empty-dirs oder -m Flagge.

$ rsync -av -m dir1/ [email protected]:/home/ostechnix/data

Dieser Befehl entfernt alle leeren Verzeichnisse aus dir1/ Quellverzeichnis, einschließlich verschachtelter Verzeichnisse, die keine Nicht-Verzeichniskinder haben.

Dies ist nützlich, um die Erstellung einer Reihe nutzloser Verzeichnisse zu vermeiden, wenn das sendende rsync rekursiv eine Hierarchie von Dateien unter Verwendung von Einschluss-/Ausschluss-/Filterregeln scannt.

16. Bandbreitenlimit festlegen

Wir können auch die maximale Datenübertragungsrate für die über den Socket gesendeten Daten mit --bwlimit festlegen Option.

Der folgende Befehl überträgt Dateien mit einer Geschwindigkeit von 10 MB pro Sekunde.

$ rsync -av --bwlimit=10M dir1/ [email protected]:/home/ostechnix/data

Beispielausgabe:

sending incremental file list
./
video.mp4
usr/
usr/lib/
usr/lib/.build-id/
usr/share/
usr/share/doc/
usr/share/licenses/

sent 901,983,468 bytes  received 72 bytes  10,078,028.38 bytes/sec
total size is 901,770,618  speedup is 1.00

Sie können K angeben für Kilobyte. Wenn kein Suffix angegeben ist, wird angenommen, dass der Wert der Datenübertragungsrate in Einheiten von 1024 bytes angegeben wird .

17. Beenden Sie das Kopieren von Dateien nach einer bestimmten Zeit

Es gibt eine Option namens --stop-after , das rsync anweist, das Kopieren von Dateien zu stoppen, wenn die angegebene Anzahl von Minuten verstrichen ist.

Der folgende Befehl weist Rsync an, den Kopiervorgang nach 15 Minuten zu beenden :

$ rsync -av --stop-after=15 dir1/ dir2

18. Stoppen Sie das Kopieren von Dateien zum genauen Zeitpunkt

Sie können sogar das Kopieren von Dateien genau zu einem bestimmten Zeitpunkt beenden mit --stop-at Möglichkeit. Sie müssen die Uhrzeit in year-month-dayThour:minute angeben formatieren.

Beispiel:

$ rsync -av --stop-at=2021-07-28T23:59 dir1/ dir2

19. Dateien und Verzeichnisse einschließen oder ausschließen

Rsync hat zwei Optionen, um bestimmte Dateien oder Verzeichnisse in die Synchronisierung aufzunehmen oder davon auszuschließen.

Der folgende Befehl schließt alles ein, was mit f beginnt, und schließt alle anderen von der Synchronisierung aus.

$ rsync -av -P --include 'f*' --exclude '*' dir1/ [email protected]:/home/ostechnix/data

Wenn Sie nur einen bestimmten Dateityp ausschließen möchten (z. B. txt Dateien) vor dem Kopieren zu schützen, führen Sie Folgendes aus:

$ rsync -avP --exclude '*.txt' dir1/ [email protected]:/home/ostechnix/data

20. Unterschied zwischen Quell- und Zieldatei anzeigen

Um anzuzeigen, ob es beim Übertragen von Dateien einen Unterschied zwischen Quelle und Ziel gibt, können Sie -i verwenden Flagge.

$ rsync -avi dir1/ [email protected]:/home/ostechnix/data

Beispielausgabe:

[email protected]'s password: 
sending incremental file list
.d..t...... ./
<f+++++++++ file1.txt

sent 270 bytes  received 40 bytes  88.57 bytes/sec
total size is 901,770,621  speedup is 2,908,937.49

Wie Sie in der obigen Ausgabe sehen, fehlt die Datei „file1.txt“ im Ziel.

Der Buchstabe f in der obigen Ausgabe steht für file.

Die anderen möglichen Buchstaben in der Ausgabe könnten sein:

  • d - zeigt an, dass es sich um eine fragliche Zieldatei handelt.
  • t - zeigt an, dass sich der Zeitstempel geändert hat.
  • s - zeigt an, dass sich die Größe geändert hat.

21. Automatische Synchronisierung mit Cron-Job

Sie können cron verwenden Planer, um die Dateiübertragung zu einer bestimmten Zeit an einem bestimmten Tag zu planen.

Bearbeiten Sie die Cronjobs des aktuellen Benutzers mit dem Befehl

$ crontab -e

Fügen Sie Ihr rsync in die Datei ein. Sagen wir zum Beispiel, dass die Sicherung jeden Tag um 3 Uhr morgens ausgeführt werden soll , verwenden Sie die folgende Zeile:

0 3 * * * rsync -av dir1/ [email protected]:/home/ostechnix/data

Abhängig von Ihren Anforderungen können Sie Rsycn-Befehle täglich, wöchentlich oder monatlich planen.

Wenn Cron-Jobs neu für Sie sind, haben wir eine Liste mit nützlichen Cron-Job-Beispielen zusammengestellt, um Aufgaben in Linux zu planen. Weitere Einzelheiten zur Cron-Nutzung finden Sie in der folgenden Anleitung.

  • Ein Anfängerleitfaden für Cron-Jobs

22. Führen Sie einen Probelauf mit Rsync durch

Rsync ist ein leistungsstarkes Tool. Seien Sie vorsichtig, besonders wenn Sie --delete verwenden Flagge. Sie könnten versehentlich wichtige Dateien löschen.

Um dies zu vermeiden, können Sie --dry-run verwenden Option, die anzeigt, was passiert, wenn Sie den Befehl ausführen, ohne tatsächlich Änderungen an den Dateien vorzunehmen.

$ rsync -av --delete --dry-run dir1/ [email protected]:/home/ostechnix/data

Dadurch führt rsync einen Testlauf durch, der keine Änderungen vornimmt und größtenteils die gleiche Ausgabe wie ein echter Lauf erzeugt.

Beispielausgabe:

[email protected]'s password: 
sending incremental file list
deleting file1.txt
./

sent 214 bytes  received 34 bytes  70.86 bytes/sec
total size is 901,770,621  speedup is 3,636,171.86 (DRY RUN)

Es wird am häufigsten in Kombination mit dem -v verwendet und -i Optionen, um zu sehen, was ein rsync-Befehl tun wird, bevor man ihn tatsächlich ausführt.

Weitere Einzelheiten finden Sie in den Manpages von Rsync.

$ man rsync

5. Grafische Rsync-Frontends

Wenn Sie ein Anfänger sind, fällt es Ihnen möglicherweise schwer, alle Rsync-Optionen und -Flags zu verstehen. Glücklicherweise sind einige grafische Frontend-Tools für Rsync verfügbar. Ein solches Tool ist Grsync .

Grsync ist eine einfache grafische Benutzeroberfläche für Rsync. Sie müssen sich keine Rsync-Befehle und deren Optionen merken. Sie können alles über eine einfach zu bedienende GUI erledigen.

Informationen zur Installation und Verwendung von Grsync zum einfachen Sichern und Synchronisieren von Dateien finden Sie in der folgenden Anleitung:

  • Grsync – Ein einfaches grafisches Frontend für Rsync

6. Fazit

In diesem ausführlichen Rsync-Leitfaden haben wir die am häufigsten verwendeten Rsync-Befehle mit Beispielen in Linux besprochen. Es gibt noch viel mehr zu behandeln, aber ich denke, diese mehr als 20 Rsync-Befehlsbeispiele reichen aus, um die Verwendung von Rsync zu lernen.

Meiner Meinung nach ist Rsync eine der besten kostenlosen Open-Source-Backup-Anwendungen für Linux- und Unix-ähnliche Betriebssysteme. Sie müssen dieses nützliche Programm verwenden, um Ihre Daten zu sichern, deren Verlust Sie sich nicht leisten können.


Linux
  1. 10 „rm“-Befehlsbeispiele für Linux-Anfänger

  2. 10 Beispiele für Linux-Cat-Befehle für Anfänger

  3. Linux-CD-Befehls-Tutorial für Anfänger (8 Beispiele)

  4. Linux Date Command Tutorial für Anfänger (8 Beispiele)

  5. Linux-Killall-Befehl für Anfänger (8 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

16 praktische Beispiele für Linux LS-Befehle für Anfänger

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)