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-OptionenSRC
- Quelldatei oder -verzeichnisDEST
- 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.