Dies ist der Befehl rsync, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
rsync – ein schnelles, vielseitiges Tool zum Remote- (und lokalen) Kopieren von Dateien
ZUSAMMENFASSUNG
Lokal: rsync [OPTION...] SRC... [DEST]
Zugriff über Remote-Shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Zugriff über rsync-Daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
Bei Verwendungen mit nur einem SRC-Argument und keinem DEST-Argument werden stattdessen die Quelldateien aufgelistet
Kopieren.
BESCHREIBUNG
Rsync ist ein schnelles und außerordentlich vielseitiges Tool zum Kopieren von Dateien. Es kann lokal kopieren,
zu/von einem anderen Host über eine beliebige Remote-Shell oder zu/von einem Remote-rsync-Daemon. Es bietet eine
große Anzahl von Optionen, die jeden Aspekt seines Verhaltens steuern und eine sehr flexible Gestaltung ermöglichen
Angabe der Menge der zu kopierenden Dateien. Es ist berühmt für seinen Delta-Transfer
Algorithmus, der die über das Netzwerk gesendete Datenmenge reduziert, indem nur die gesendet werden
Unterschiede zwischen den Quelldateien und den vorhandenen Dateien im Ziel. Rsync ist
Wird häufig für Backups und Spiegelungen sowie als verbesserter Kopierbefehl für den täglichen Gebrauch verwendet.
Rsync findet Dateien, die übertragen werden müssen, mithilfe eines „Schnellprüfungs“-Algorithmus (standardmäßig).
Das sucht nach Dateien, deren Größe oder in der letzten Änderungszeit geändert wurde. Irgendwelche Änderungen in
Die anderen beibehaltenen Attribute (wie durch Optionen angefordert) werden in der Zieldatei vorgenommen
direkt, wenn die Schnellprüfung ergibt, dass die Daten der Datei nicht aktualisiert werden müssen.
Einige der zusätzlichen Funktionen von rsync sind:
o Unterstützung für das Kopieren von Links, Geräten, Besitzern, Gruppen und Berechtigungen
o Ausschluss- und Ausschlussoptionen ähnlich wie bei GNU tar
o CVS-Ausschlussmodus zum Ignorieren derselben Dateien, die CVS ignorieren würde
o kann jede transparente Remote-Shell verwenden, einschließlich SSH oder RSH
o erfordert keine Superuser-Rechte
o Pipelining von Dateiübertragungen zur Minimierung der Latenzkosten
o Unterstützung für anonyme oder authentifizierte rsync-Daemons (ideal für Spiegelung)
ALLGEMEIN
Rsync kopiert Dateien entweder zu oder von einem Remote-Host oder lokal auf dem aktuellen Host (it
unterstützt nicht das Kopieren von Dateien zwischen zwei Remote-Hosts).
Es gibt zwei verschiedene Möglichkeiten für rsync, ein Remote-System zu kontaktieren: über eine Remote-Shell
Programm als Transport (wie ssh oder rsh) oder direkte Kontaktaufnahme mit einem rsync-Daemon über
TCP. Der Remote-Shell-Transport wird immer dann verwendet, wenn der Quell- oder Zielpfad enthält
ein einzelnes Doppelpunkt-Trennzeichen (:) nach einer Host-Spezifikation. Kontaktaufnahme mit einem Rsync-Daemon
Dies geschieht direkt, wenn der Quell- oder Zielpfad einen Doppelpunkt (::) enthält.
Trennzeichen nach einer Host-Spezifikation, ODER wenn eine rsync://-URL angegeben ist (siehe auch
Abschnitt „VERWENDUNG VON RSYNC-DAEMON-FUNKTIONEN ÜBER EINE REMOTE-SHELL-VERBINDUNG“ für eine Ausnahme von
diese letzte Regel).
Als Sonderfall gelten die Dateien, wenn ein einzelnes Quellargument ohne Ziel angegeben wird
werden in einem Ausgabeformat ähnlich „ls -l“ aufgelistet.
Wenn weder der Quell- noch der Zielpfad einen Remote-Host angeben, erfolgt erwartungsgemäß die Kopie
kommt lokal vor (siehe auch die --list-only Möglichkeit).
Rsync bezeichnet die lokale Seite als „Client“ und die Remote-Seite als „Server“. Nicht
Verwechseln Sie „Server“ mit einem Rsync-Daemon – ein Daemon ist immer ein Server, aber ein Server kann es sein
entweder ein Daemon oder ein von einer Remote-Shell erzeugter Prozess.
SETUP
Installationsanweisungen finden Sie in der README-Datei.
Nach der Installation können Sie rsync auf jedem Computer verwenden, auf den Sie über eine Remote-Shell zugreifen können
(sowie einige, auf die Sie über das Rsync-Daemon-Mode-Protokoll zugreifen können). Für Fernbedienung
Bei Übertragungen verwendet ein moderner Rsync SSH für seine Kommunikation, dies wurde jedoch möglicherweise konfiguriert
um standardmäßig eine andere Remote-Shell zu verwenden, z. B. rsh oder remsh.
Sie können auch eine beliebige Remote-Shell angeben, indem Sie entweder die verwenden -e Befehlszeile
Option oder durch Festlegen der Umgebungsvariablen RSYNC_RSH.
Beachten Sie, dass rsync sowohl auf dem Quell- als auch auf dem Zielcomputer installiert sein muss.
ANWENDUNG
Sie verwenden rsync auf die gleiche Weise wie rcp. Sie müssen eine Quelle und ein Ziel angeben.
Einer davon kann entfernt sein.
Vielleicht lässt sich die Syntax am besten anhand einiger Beispiele erklären:
rsync -t *.c foo:src/
Dies würde alle Dateien, die dem Muster *.c entsprechen, aus dem aktuellen Verzeichnis in das übertragen
Verzeichnis src auf der Maschine foo. Wenn eine der Dateien bereits auf dem Remote-System vorhanden ist
Anschließend wird das Rsync-Remote-Update-Protokoll verwendet, um die Datei zu aktualisieren, indem nur das gesendet wird
Unterschiede in den Daten. Beachten Sie, dass die Erweiterung von Platzhaltern in der Befehlszeile (*.c)
in eine Liste von Dateien wird von der Shell verarbeitet, bevor sie rsync ausführt, und nicht von rsync selbst
(genau das Gleiche wie alle anderen Programme im Posix-Stil).
rsync -avz foo:src/bar /data/tmp
Dies würde alle Dateien rekursiv aus dem Verzeichnis src/bar auf die Maschine foo übertragen
in das Verzeichnis /data/tmp/bar auf dem lokalen Rechner. Die Dateien werden übertragen
„Archiv“-Modus, der sicherstellt, dass symbolische Links, Geräte, Attribute, Berechtigungen,
Eigentumsrechte etc. bleiben bei der Übertragung erhalten. Zusätzlich wird die Komprimierung verwendet
Reduzieren Sie die Größe der Datenabschnitte der Übertragung.
rsync -avz foo:src/bar/ /data/tmp
Ein abschließender Schrägstrich in der Quelle ändert dieses Verhalten, um die Erstellung eines zusätzlichen zu vermeiden
Verzeichnisebene am Ziel. Sie können sich ein nachgestelltes „/“ an einer Quelle als Bedeutung vorstellen
„Kopieren Sie den Inhalt dieses Verzeichnisses“ im Gegensatz zu „Kopieren Sie das Verzeichnis nach Namen“, aber in
In beiden Fällen werden die Attribute des enthaltenden Verzeichnisses auf das enthaltende Verzeichnis übertragen
Verzeichnis auf dem Ziel. Mit anderen Worten: Jeder der folgenden Befehle kopiert die
Dateien auf die gleiche Weise, einschließlich der Einstellung der Attribute von /dest/foo:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Beachten Sie auch, dass Host- und Modulverweise zum Kopieren keinen abschließenden Schrägstrich erfordern
Inhalt des Standardverzeichnisses. Beide kopieren beispielsweise die Remote-Verzeichnisse
Inhalt in „/dest“:
rsync -av Host: /dest
rsync -av host::module /dest
Sie können rsync auch im Nur-lokal-Modus verwenden, in dem dies sowohl für die Quelle als auch für das Ziel nicht der Fall ist
ein „:“ im Namen haben. In diesem Fall verhält es sich wie ein verbesserter Kopierbefehl.
Schließlich können Sie alle (auflistbaren) Module auflisten, die von einem bestimmten rsync-Daemon verfügbar sind
durch Weglassen des Modulnamens:
rsync somehost.mydomain.com::
Weitere Einzelheiten finden Sie im folgenden Abschnitt.
Fortgeschritten ANWENDUNG
Die Syntax zum Anfordern mehrerer Dateien von einem Remote-Host erfolgt durch Angabe
zusätzliche Remote-Host-Argumente im gleichen Stil wie das erste oder ohne den Hostnamen.
Zum Beispiel funktionieren diese alle:
rsync -av host:file1 :file2 host:file{3,4} /dest/
rsync -av host::modname/file{1,2} host::modname/file3 /dest/
rsync -av host::modname/file1 ::modname/file{3,4}
Ältere Versionen von rsync erforderten die Verwendung von Leerzeichen in Anführungszeichen im SRC, wie in diesen Beispielen:
rsync -av host:'dir1/file1 dir2/file2' /dest
rsync host::'modname/dir1/file1 modname/dir2/file2' /dest
Diese Wortaufteilung funktioniert im neuesten Rsync immer noch (standardmäßig), ist aber nicht mehr so einfach
als erste Methode verwenden.
Wenn Sie einen Dateinamen übertragen müssen, der Leerzeichen enthält, können Sie entweder Folgendes angeben
--protect-args (-s) Option, oder Sie müssen das Leerzeichen so maskieren, dass das
Die Remote-Shell wird es verstehen. Zum Beispiel:
rsync -av host:'Dateiname\ mit Leerzeichen' /dest
SICH ZUSAMMENSCHLIESSEN TO AN RSYNC DÄMON
Es ist auch möglich, rsync ohne Remote-Shell als Transport zu verwenden. In diesem Fall
Sie stellen eine direkte Verbindung zu einem Remote-Rsync-Daemon her, normalerweise über den TCP-Port 873. (Dies
Offensichtlich muss der Daemon auf dem Remote-System ausgeführt werden. Lesen Sie daher den Abschnitt STARTING
Weitere Informationen hierzu finden Sie im Abschnitt „EIN RSYNC-DAEMON ZUM AKZEPTIEREN VON VERBINDUNGEN“.)
Die Verwendung von rsync auf diese Weise ist dasselbe wie die Verwendung mit einer Remote-Shell, außer dass:
o Sie verwenden entweder einen Doppelpunkt :: anstelle eines einzelnen Doppelpunkts, um den Hostnamen zu trennen
aus dem Pfad, oder Sie verwenden eine rsync://-URL.
o Das erste Wort des „Pfads“ ist eigentlich ein Modulname.
o Der Remote-Daemon druckt möglicherweise eine Nachricht des Tages, wenn Sie eine Verbindung herstellen.
o Wenn Sie auf dem Remote-Daemon keinen Pfadnamen angeben, wird die Liste der zugänglichen Pfade angezeigt
auf dem Daemon wird angezeigt.
o Wenn Sie kein lokales Ziel angeben, wird eine Liste der angegebenen Dateien auf dem angezeigt
Es wird ein Remote-Daemon bereitgestellt.
o Sie dürfen das nicht angeben --rsh (-e) Möglichkeit.
Ein Beispiel, das alle Dateien in ein Remote-Modul namens „src“ kopiert:
rsync -av host::src /dest
Einige Module im Remote-Daemon erfordern möglicherweise eine Authentifizierung. Wenn ja, erhalten Sie eine
Passwortabfrage, wenn Sie eine Verbindung herstellen. Sie können die Passwortabfrage vermeiden, indem Sie Folgendes festlegen
Umgebungsvariable RSYNC_PASSWORD auf das Passwort, das Sie verwenden möchten oder verwenden
--Passwort-Datei Möglichkeit. Dies kann bei der Skripterstellung für rsync nützlich sein.
WARNUNG: Auf einigen Systemen sind Umgebungsvariablen für alle Benutzer sichtbar. Auf diesen Systemen
mit automatisierten --Passwort-Datei ist empfohlen.
Sie können die Verbindung über einen Web-Proxy herstellen, indem Sie die Umgebungsvariable setzen
RSYNC_PROXY auf ein Hostname:Port-Paar, das auf Ihren Web-Proxy verweist. Beachten Sie, dass Ihre Website
Die Konfiguration des Proxys muss Proxy-Verbindungen zu Port 873 unterstützen.
Sie können auch eine Daemon-Verbindung mit einem Programm als Proxy herstellen, indem Sie Folgendes festlegen
Fügen Sie die Umgebungsvariable RSYNC_CONNECT_PROG zu den Befehlen hinzu, die Sie ausführen möchten, anstatt sie zu erstellen
eine direkte Steckdosenverbindung. Die Zeichenfolge kann das Escape-Zeichen „%H“ enthalten, um das darzustellen
Hostname, der im rsync-Befehl angegeben ist (verwenden Sie also „%%“, wenn Sie ein einzelnes „%“ in Ihrem benötigen
Zeichenfolge). Zum Beispiel:
export RSYNC_CONNECT_PROG='ssh Proxyhost NC %H 873'
rsync -av targethost1::module/src/ /dest/
rsync -av rsync:://targethost2/module/src/ /dest/
Der oben angegebene Befehl verwendet ssh, um nc (netcat) auf einem Proxyhost auszuführen, der alles weiterleitet
Daten an Port 873 (den Rsync-Daemon) auf dem Zielhost (%H).
VERWENDUNG RSYNC-DAEMON MERKMALE VIA A REMOTE-SHELL CONNECTION
Manchmal ist es nützlich, verschiedene Funktionen eines rsync-Daemons zu verwenden (z. B. benannte Module).
ohne tatsächlich neue Socket-Verbindungen in ein System zuzulassen (außer dem, was es ist).
bereits erforderlich, um den Remote-Shell-Zugriff zu ermöglichen). Rsync unterstützt die Verbindung zu einem Host über
eine Remote-Shell und erzeugt dann einen einmaligen „Daemon“-Server, der erwartet, ihn zu lesen
config-Datei im Home-Verzeichnis des Remote-Benutzers. Dies kann nützlich sein, wenn Sie verschlüsseln möchten
Die Daten werden im Daemon-Stil übertragen, da der Daemon jedoch von der Fernbedienung neu gestartet wird
Als Benutzer können Sie möglicherweise keine Funktionen wie Chroot nutzen oder die vom Benutzer verwendete UID ändern
Daemon. (Als andere Möglichkeit, eine Daemon-Übertragung zu verschlüsseln, ziehen Sie die Verwendung von SSH zum Tunneln von a in Betracht
lokalen Port zu einem Remote-Computer und konfigurieren Sie einen normalen Rsync-Daemon auf diesem Remote-Host
Erlaube nur Verbindungen von „localhost“.)
Aus Benutzersicht ist eine Daemon-Übertragung über eine Remote-Shell-Verbindung nahezu nutzlos
Dieselbe Befehlszeilensyntax wie bei einer normalen Rsync-Daemon-Übertragung, mit der einzigen Ausnahme
Dies bedeutet, dass Sie das Remote-Shell-Programm explizit in der Befehlszeile mit dem festlegen müssen
--rsh=BEFEHL Möglichkeit. (Durch das Festlegen von RSYNC_RSH in der Umgebung wird dies nicht aktiviert
Funktionalität.) Zum Beispiel:
rsync -av --rsh=ssh host::module /dest
Wenn Sie einen anderen Remote-Shell-Benutzer angeben müssen, beachten Sie das Präfix user@
Vor dem Host wird der rsync-user-Wert angegeben (für ein Modul, das Folgendes erfordert).
benutzerbasierte Authentifizierung). Das bedeutet, dass Sie ssh die Option „-l user“ geben müssen
bei der Angabe der Remote-Shell, wie in diesem Beispiel, das die Kurzversion von verwendet
--rsh Option:
rsync -av -e "ssh -l ssh-user" rsync-user@host::module /dest
Der „ssh-user“ wird auf der SSH-Ebene verwendet; Der „rsync-user“ wird für die Anmeldung verwendet
das „Modul“.
BEGINNEND AN RSYNC DÄMON TO Akzeptieren CONNECTIONS
Um eine Verbindung zu einem Rsync-Daemon herzustellen, muss das Remote-System bereits über einen Daemon verfügen
läuft (oder es muss so etwas wie inetd konfiguriert sein, um einen Rsync-Daemon zu erzeugen
eingehende Verbindungen auf einem bestimmten Port). Ausführliche Informationen zum Starten eines Daemons finden Sie hier
Das wird eingehende Socket-Verbindungen verarbeiten, siehe rsyncd.conf(5) Manpage – das heißt
Die Konfigurationsdatei für den Daemon enthält die vollständigen Details zur Ausführung des Daemons
(einschließlich Standalone- und Inetd-Konfigurationen).
Wenn Sie für die Übertragung einen der Remote-Shell-Transporte verwenden, ist dies nicht erforderlich
Starten Sie manuell einen Rsync-Daemon.
SORTIERT TRANSFER BESTELLUNG
Rsync sortiert die angegebenen Dateinamen immer in seine interne Übertragungsliste. Das geht
Das Zusammenführen der Inhalte gleichnamiger Verzeichnisse erleichtert dies
Entfernen Sie doppelte Dateinamen und können Sie jemanden verwirren, wenn die Dateien in einem übertragen werden
andere Reihenfolge als in der Befehlszeile angegeben.
Wenn Sie eine bestimmte Datei vor einer anderen übertragen müssen, trennen Sie diese entweder
Dateien in verschiedene rsync-Aufrufe umwandeln oder die Verwendung in Betracht ziehen --delay-updates (was keinen Einfluss hat
die sortierte Übertragungsreihenfolge, sorgt aber dafür, dass die abschließende Dateiaktualisierungsphase viel häufiger erfolgt
schnell).
Beispiele:
Hier sind einige Beispiele, wie ich rsync verwende.
Zur Sicherung des Home-Verzeichnisses meiner Frau, das aus großen MS Word-Dateien und E-Mails besteht
Ordner verwende ich einen Cron-Job, der ausgeführt wird
rsync -Cavz . arvidsjaur:backup
jede Nacht über eine PPP-Verbindung zu einem doppelten Verzeichnis auf meinem Rechner „arvidsjaur“.
Um meine Samba-Quellbäume zu synchronisieren, verwende ich die folgenden Makefile-Ziele:
bekommen:
rsync -avuzb --exclude '*~' samba:samba/ .
stellen:
rsync -Cavuzb . samba:samba/
sync: gesetzt werden
Dadurch kann ich mit einem CVS-Verzeichnis am anderen Ende der Verbindung synchronisieren. Das tue ich dann
CVS-Vorgänge auf dem Remote-Computer, was als Remote-CVS-Protokoll viel Zeit spart
ist nicht sehr effizient.
Ich spiegele ein Verzeichnis zwischen meinen „alten“ und „neuen“ FTP-Sites mit dem Befehl:
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
Dies wird alle paar Stunden von Cron aus gestartet.
OPTIONAL ZUSAMMENFASSUNG
Hier ist eine kurze Zusammenfassung der in rsync verfügbaren Optionen. Bitte beachten Sie die detaillierte
Beschreibung unten für eine vollständige Beschreibung.
-v, --verbose erhöht die Ausführlichkeit
--info=FLAGS feinkörnige Informationsausführlichkeit
--debug=FLAGS feinkörnige Debug-Ausführlichkeit
--msgs2stderr spezielle Ausgabebehandlung zum Debuggen
-q, --quiet unterdrückt Nicht-Fehlermeldungen
--no-motd unterdrückt Daemon-Modus-MOTD (siehe Vorbehalt)
-c, --checksum überspringen basierend auf der Prüfsumme, nicht auf Mod-Zeit und -Größe
-a, --archive Archivmodus; gleich -rlptgoD (kein -H,-A,-X)
--no-OPTION eine implizite OPTION ausschalten (z. B. --no-D)
-r, --recursive Rekursion in Verzeichnisse
-R, --relative verwenden relative Pfadnamen
--no-implied-dirs sendet keine impliziten Verzeichnisse mit --relative
-b, --backup erstellt Backups (siehe --suffix & --backup-dir)
--backup-dir=DIR erstellt Backups in einer Hierarchie basierend auf DIR
--suffix=SUFFIX-Backup-Suffix (Standard ~ ohne --backup-dir)
-u, --update überspringt neuere Dateien auf dem Empfänger
--inplace Zieldateien direkt aktualisieren
--append hängt Daten an kürzere Dateien an
--append-verify --append mit alten Daten in der Dateiprüfsumme
-d, --dirs Verzeichnisse ohne Rekursion übertragen
-l, --links kopieren Symlinks als Symlinks
-L, --copy-links wandeln Symlink in Referenzdatei/-verzeichnis um
--copy-unsafe-links werden nur „unsichere“ Symlinks umgewandelt
--safe-links ignoriert Symlinks, die außerhalb des Baums zeigen
--munge-links munge symbolische Links, um sie sicherer zu machen
-k, --copy-dirlinks wandeln den symbolischen Link zum Verzeichnis in das Referenzverzeichnis um
-K, --keep-dirlinks behandelt das symbolisch verknüpfte Verzeichnis auf dem Empfänger als Verzeichnis
-H, --hard-links bewahren Hardlinks
-p, --perms bewahren Berechtigungen
-E, --executability bewahrt die Ausführbarkeit
--chmod=CHMOD wirkt sich auf Datei- und/oder Verzeichnisberechtigungen aus
-A, --acls bewahrt ACLs (impliziert -p)
-X, --xattrs bewahren erweiterte Attribute
-o, --owner behält den Besitzer bei (nur Superuser)
-g, --group Gruppe beibehalten
--devices bewahrt Gerätedateien (nur Superuser)
--specials bewahrt spezielle Dateien
-D dasselbe wie --devices --specials
-t, --times bewahren die Änderungszeiten
-O, --omit-dir-times lässt Verzeichnisse aus --times aus
-J, --omit-link-times lässt symbolische Links von --times weg
--super Receiver versucht Superuser-Aktivitäten
--fake-super privilegierte Attribute mit xattrs speichern/wiederherstellen
-S, --sparse verarbeitet Dateien mit geringer Dichte effizient
--preallocate ordnet Zieldateien vor dem Schreiben zu
-n, --dry-run führt einen Testlauf ohne vorgenommene Änderungen durch
-W, --whole-file Dateien im Ganzen kopieren (ohne Delta-Xfer-Algorithmus)
-x, --one-file-system überschreiten keine Dateisystemgrenzen
-B, --block-size=SIZE erzwingt eine feste Prüfsummenblockgröße
-e, --rsh=COMMAND gibt die zu verwendende Remote-Shell an
--rsync-path=PROGRAM gibt den Rsync an, der auf dem Remote-Computer ausgeführt werden soll
--existing überspringt das Erstellen neuer Dateien auf dem Empfänger
--ignore-existing überspringt die Aktualisierung von Dateien, die auf dem Empfänger vorhanden sind
--remove-source-files Absender entfernt synchronisierte Dateien (nicht Verzeichnis)
--del ein Alias für --delete-during
--delete löscht überflüssige Dateien aus den Zielverzeichnissen
--delete-before Receiver löscht vor xfer, nicht während
--delete-during Empfänger löscht während der Übertragung
--delete-delay Löschungen währenddessen finden, danach löschen
--delete-after Receiver löscht nach der Übertragung, nicht während
--delete-excluded löscht auch ausgeschlossene Dateien aus den Zielverzeichnissen
--ignore-missing-args ignoriert fehlende Quellargumente ohne Fehler
--delete-missing-args löscht fehlende Quellargumente vom Ziel
--ignore-errors löschen, auch wenn E/A-Fehler vorliegen
--force erzwingt das Löschen von Verzeichnissen, auch wenn diese nicht leer sind
--max-delete=NUM löscht nicht mehr als NUM Dateien
--max-size=SIZE überträgt keine Dateien, die größer als SIZE sind
--min-size=SIZE überträgt keine Dateien, die kleiner als SIZE sind
--partial behält teilweise übertragene Dateien bei
--partial-dir=DIR legt eine teilweise übertragene Datei in DIR ab
--delay-updates fügt am Ende alle aktualisierten Dateien an ihren Platz ein
-m, --prune-empty-dirs entfernt leere Verzeichnisketten aus der Dateiliste
--numeric-ids ordnet UID-/GID-Werte nicht nach Benutzer-/Gruppennamen zu
--usermap=STRING benutzerdefinierte Benutzernamenzuordnung
--groupmap=STRING benutzerdefinierte Gruppennamenzuordnung
--chown=USER:GROUP einfache Benutzername/Gruppenname-Zuordnung
--timeout=SECONDS legt das E/A-Timeout in Sekunden fest
--contimeout=SECONDS legt das Zeitlimit für die Daemon-Verbindung in Sekunden fest
-I, --ignore-times überspringt keine Dateien, deren Größe und Zeit übereinstimmen
--size-only überspringt Dateien mit übereinstimmender Größe
--modify-window=NUM vergleicht Mod-Zeiten mit reduzierter Genauigkeit
-T, --temp-dir=DIR temporäre Dateien im Verzeichnis DIR erstellen
-y, --fuzzy findet eine ähnliche Datei für die Basis, wenn keine Zieldatei vorhanden ist
--compare-dest=DIR vergleicht auch empfangene Dateien relativ zum DIR
--copy-dest=DIR ... und Kopien unveränderter Dateien einschließen
--link-dest=DIR-Hardlink zu Dateien im DIR, wenn diese unverändert bleiben
-z, --compress komprimiert Dateidaten während der Übertragung
--compress-level=NUM legt die Komprimierungsstufe explizit fest
--skip-compress=LIST überspringt das Komprimieren von Dateien mit Suffix in LIST
-C, --cvs-exclude Dateien automatisch ignorieren, genau wie CVS
-f, --filter=RULE fügt eine Dateifilterungsregel hinzu
-F dasselbe wie --filter='dir-merge /.rsync-filter'
wiederholt: --filter='- .rsync-filter'
--exclude=MUSTER schließt Dateien aus, die mit MUSTER übereinstimmen
--exclude-from=DATEI liest Ausschlussmuster aus DATEI
--include=PATTERN schließt Dateien, die mit PATTERN übereinstimmen, nicht aus
--include-from=DATEI liest Include-Muster aus DATEI
--files-from=DATEI liest Liste der Quelldateinamen aus DATEI
-0, --from0 Alle *from/filter-Dateien werden durch Nullen getrennt
-s, --protect-args keine Leerzeichenaufteilung; Nur Platzhalterzeichen
--address=ADDRESS bindet die Adresse für den ausgehenden Socket an den Daemon
--port=PORT Geben Sie die alternative Portnummer mit Doppelpunkt an
--sockopts=OPTIONS geben benutzerdefinierte TCP-Optionen an
--blocking-io verwendet blockierende E/A für die Remote-Shell
--outbuf=N|L|B legt die Pufferung auf „Keine“, „Zeile“ oder „Block“ fest
--stats liefert einige Dateiübertragungsstatistiken
-8, --8-bit-output lässt High-Bit-Zeichen in der Ausgabe ohne Escapezeichen
-h, --human-readable gibt Zahlen in einem für Menschen lesbaren Format aus
--progress zeigt den Fortschritt während der Übertragung an
-P dasselbe wie --partial --progress
-i, --itemize-changes gibt eine Änderungszusammenfassung für alle Updates aus
-M, --remote-option=OPTION sendet OPTION nur an die Remote-Seite
--out-format=FORMAT gibt Aktualisierungen mit dem angegebenen FORMAT aus
--log-file=DATEI protokolliert, was wir in der angegebenen DATEI tun
--log-file-format=FMT-Protokollaktualisierungen mit dem angegebenen FMT
--password-file=DATEI liest Daemon-Zugriffskennwort aus DATEI
--list-only listet die Dateien auf, anstatt sie zu kopieren
--bwlimit=RATE begrenzt die Socket-E/A-Bandbreite
--write-batch=DATEI schreibt eine Batch-Aktualisierung in die DATEI
--only-write-batch=DATEI wie --write-batch, aber ohne Aktualisierung des Ziels
--read-batch=FILE liest ein Batch-Update aus FILE
--protocol=NUM erzwingt die Verwendung einer älteren Protokollversion
--iconv=CONVERT_SPEC fordert Zeichensatzkonvertierung von Dateinamen an
--checksum-seed=NUM gesetzter Block-/Dateiprüfsummen-Seed (erweitert)
-4, --ipv4 bevorzugt IPv4
-6, --ipv6 bevorzugt IPv6
--version Versionsnummer drucken
(-h) --help zeigt diese Hilfe an (siehe unten für den Kommentar zu -h)
Rsync kann auch als Daemon ausgeführt werden. In diesem Fall werden die folgenden Optionen akzeptiert:
--daemon wird als Rsync-Daemon ausgeführt
--address=ADDRESS bindet an die angegebene Adresse
--bwlimit=RATE begrenzt die Socket-E/A-Bandbreite
--config=DATEI gibt eine alternative rsyncd.conf-Datei an
-M, --dparam=OVERRIDE überschreibt den globalen Daemon-Konfigurationsparameter
--no-detach nicht vom übergeordneten Element trennen
--port=PORT überwacht alternative Portnummer
--log-file=DATEI überschreibt die Einstellung „Protokolldatei“.
--log-file-format=FMT überschreibt die Einstellung „Protokollformat“.
--sockopts=OPTIONS geben benutzerdefinierte TCP-Optionen an
-v, --verbose erhöht die Ausführlichkeit
-4, --ipv4 bevorzugt IPv4
-6, --ipv6 bevorzugt IPv6
-h, --help zeigt diese Hilfe an (falls nach --daemon verwendet)
OPTIONAL
Rsync akzeptiert sowohl lange (doppelter Bindestrich + Wort) als auch kurze (einzelner Bindestrich + Buchstabe) Optionen.
Die vollständige Liste der verfügbaren Optionen wird unten beschrieben. Wenn eine Option angegeben werden kann
In mehr als einer Hinsicht sind die Auswahlmöglichkeiten durch Kommas getrennt. Einige Optionen haben nur eine lange Laufzeit
Variante, nicht kurz. Wenn die Option einen Parameter akzeptiert, wird der Parameter erst danach aufgeführt
die lange Variante, obwohl sie auch für die kurze Variante angegeben werden muss. Bei der Angabe von a
Parameter können Sie entweder die Form --option=param verwenden oder das „=“ durch Leerzeichen ersetzen.
Der Parameter muss möglicherweise in irgendeiner Weise in Anführungszeichen gesetzt werden, damit er die der Shell überdauert
Befehlszeilenanalyse. Beachten Sie, dass eine führende Tilde (~) in einem Dateinamen ersetzt wird
von Ihrer Shell, also --option=~/foo ändert die Tilde nicht in Ihr Home-Verzeichnis
(entfernen Sie dazu das „=“).
--help Drucken Sie eine kurze Hilfeseite aus, auf der die in rsync und Exit verfügbaren Optionen beschrieben werden. Für
Aufgrund der Abwärtskompatibilität mit älteren Versionen von rsync wird die Hilfe ebenfalls ausgegeben
wenn Sie das benutzen -h Option ohne weitere Argumente.
--Version
Geben Sie die Rsync-Versionsnummer aus und beenden Sie den Vorgang.
-in, - ausführlich
Diese Option erhöht den Umfang der Informationen, die Sie während der Übertragung erhalten.
Standardmäßig arbeitet rsync im Hintergrund. Ein einzelner -v wird Ihnen Auskunft darüber geben, was
Dateien werden übertragen und am Ende eine kurze Zusammenfassung. Zwei -v Optionen werden
Geben Sie Informationen darüber, welche Dateien übersprungen werden, und etwas mehr Informationen
Am Ende. Mehr als zwei -v Optionen sollten nur beim Debuggen verwendet werden
rsync.
In einem modernen Rsync ist das -v Die Option entspricht der Einstellung von Gruppen von --die Info
und --debuggen Optionen. Sie können diese neueren Optionen zusätzlich zu oder verwenden
anstelle der Verwendung - ausführlich, da alle fein abgestuften Einstellungen die implizierten außer Kraft setzen
Einstellungen -v. Beide --die Info und --debuggen haben Sie eine Möglichkeit, um Hilfe zu bitten, die es Ihnen sagt
genau, welche Flags für jede Erhöhung der Ausführlichkeit gesetzt werden.
Beachten Sie jedoch, dass die Einstellung „Maximale Ausführlichkeit“ eines Daemons die Art und Weise einschränkt
Auf einer höheren Ebene können auf der Daemon-Seite verschiedene individuelle Flags gesetzt werden. Für
Wenn das Maximum beispielsweise 2 ist, dann jedes Info- und/oder Debug-Flag, das auf einen höheren Wert gesetzt ist
Wert als der, der festgelegt werden würde -vv wird auf die herabgestuft -vv Ebene in der
Protokollierung des Daemons.
--info=FLAGS
Mit dieser Option haben Sie eine detaillierte Kontrolle über die gewünschte Informationsausgabe
um zu sehen. Auf den Namen einer einzelnen Flagge kann eine Stufennummer mit der Bedeutung 0 folgen
um diesen Ausgang stummzuschalten, wobei 1 der Standardausgangspegel ist und höhere Zahlen
Erhöhen der Ausgabe dieses Flags (für diejenigen, die höhere Ebenen unterstützen). Verwenden
--info=Hilfe um alle verfügbaren Flaggennamen, deren Ausgabe und die Flagge anzuzeigen
Namen werden für jede Erhöhung der Ausführlichkeitsstufe hinzugefügt. Einige Beispiele:
rsync -a --info=progress2 src/ dest/
rsync -avv --info=stats2,misc1,flist0 src/ dest/
Beachten Sie, dass --info=NameDie Ausgabe von wird dadurch beeinflusst --out-format und
--itemize-changes (-i) Optionen. Weitere Informationen dazu finden Sie in diesen Optionen
Ausgabe und wann.
Diese Option wurde zu 3.1.0 hinzugefügt, sodass ein älterer Rsync auf der Serverseite möglicherweise abgelehnt wird
Ihre Versuche einer feinkörnigen Steuerung (wenn ein oder mehrere Flags gesendet werden mussten).
der Server und der Server war zu alt, um sie zu verstehen). Siehe auch die „max
Ausführlichkeit“-Vorbehalt oben beim Umgang mit einem Daemon.
--debug=FLAGS
Mit dieser Option haben Sie eine detaillierte Kontrolle über die gewünschte Debug-Ausgabe
sehen. Einem einzelnen Flag-Namen kann eine Level-Nummer folgen, wobei 0 „bis“ bedeutet
Diesen Ausgang stummschalten, wobei 1 der Standardausgangspegel ist und höhere Zahlen
Erhöhen der Ausgabe dieses Flags (für diejenigen, die höhere Ebenen unterstützen). Verwenden
--debug=Hilfe um alle verfügbaren Flaggennamen, deren Ausgabe und die Flagge anzuzeigen
Namen werden für jede Erhöhung der Ausführlichkeitsstufe hinzugefügt. Einige Beispiele:
rsync -avvv --debug=none Quelle/Ziel/
rsync -avA --del --debug=del2,acl src/ dest/
Beachten Sie, dass einige Debug-Meldungen nur ausgegeben werden, wenn --msgs2stderr angegeben,
insbesondere diejenigen, die sich auf das I/O- und Puffer-Debugging beziehen.
Diese Option wurde zu 3.1.0 hinzugefügt, sodass ein älterer Rsync auf der Serverseite möglicherweise abgelehnt wird
Ihre Versuche einer feinkörnigen Steuerung (wenn ein oder mehrere Flags gesendet werden mussten).
der Server und der Server war zu alt, um sie zu verstehen). Siehe auch die „max
Ausführlichkeit“-Vorbehalt oben beim Umgang mit einem Daemon.
--msgs2stderr
Diese Option ändert rsync so, dass seine gesamte Ausgabe direkt an stderr und nicht an gesendet wird
Senden Sie Nachrichten über das Protokoll an die Clientseite (das normalerweise Informationen ausgibt).
Nachrichten über stdout). Dies ist hauptsächlich zum Debuggen gedacht, um Fehler zu vermeiden
Ändern der über das Protokoll gesendeten Daten, da sich die zusätzlichen Protokolldaten ändern können
was getestet wird. Beachten Sie, dass eine Daemon-Verbindung keinen stderr hat
Kanal, um Nachrichten an die Clientseite zurückzusenden, falls Sie also welche tun
Daemon-Transfer-Debugging mit dieser Option verwenden, sollten Sie einen Daemon mit starten
--no-detach damit Sie die stderr-Ausgabe auf der Daemon-Seite sehen können.
Diese Option hat den Nebeneffekt, dass die stderr-Ausgabe zeilengepuffert wird
Die Zusammenführung der Ausgabe von 3 Programmen erfolgt auf lesbarere Weise.
-Q, --ruhig
Diese Option verringert die Menge an Informationen, die Sie während der Übertragung erhalten.
insbesondere die Unterdrückung von Informationsmeldungen vom Remote-Server. Diese Option ist
nützlich beim Aufruf von rsync über Cron.
--no-modd
Diese Option beeinflusst die Informationen, die der Client zu Beginn eines ausgibt
Daemon-Übertragung. Dadurch wird der MOTD-Text (Message-of-the-Day) unterdrückt, aber auch
wirkt sich auf die Liste der Module aus, die der Daemon als Antwort auf den Befehl „rsync host::“ sendet.
Anfrage (aufgrund einer Einschränkung im rsync-Protokoll), also lassen Sie diese Option weg, wenn Sie
Ich möchte die Liste der Module vom Daemon anfordern.
-ICH, --ignore-times
Normalerweise überspringt rsync alle Dateien, die bereits die gleiche Größe und den gleichen Wert haben
Änderungszeitstempel. Diese Option deaktiviert dieses Verhalten der „Schnellprüfung“, das dazu führt
Alle zu aktualisierenden Dateien.
--size-only
Dadurch wird der „Schnellprüfungs“-Algorithmus von rsync zum Auffinden von Dateien geändert, die überprüft werden müssen
übertragen, wodurch die Standardeinstellung, Dateien mit entweder a zu übertragen, geändert wird
geänderte Größe oder eine geänderte letzte Änderungszeit, um nur nach Dateien zu suchen, die dies getan haben
in der Größe verändert. Dies ist nützlich, wenn Sie mit der Verwendung von rsync beginnen, nachdem Sie ein anderes verwendet haben
Spiegelungssystem, das Zeitstempel möglicherweise nicht genau behält.
--modify-window
Beim Vergleich zweier Zeitstempel behandelt rsync die Zeitstempel als gleich, wenn sie vorhanden sind
unterscheiden sich um nicht mehr als den Modify-Window-Wert. Dies ist normalerweise 0 (für eine genaue
In einigen Fällen kann es jedoch nützlich sein, diesen Wert auf einen größeren Wert zu setzen
Situationen. Insbesondere bei der Übertragung zu oder von einem MS Windows FAT
Dateisystem (das Zeiten mit einer 2-Sekunden-Auflösung darstellt), --modify-window=1
ist nützlich (dadurch können sich die Zeiten um bis zu 1 Sekunde unterscheiden).
-C, --Prüfsumme
Dadurch ändert sich die Art und Weise, wie rsync prüft, ob die Dateien geändert wurden und benötigt werden
eine Überweisung. Ohne diese Option verwendet rsync eine „Schnellprüfung“, die (standardmäßig)
Prüft, ob die Größe jeder Datei und der Zeitpunkt der letzten Änderung beim Absender übereinstimmen
und Empfänger. Diese Option ändert dies und vergleicht eine 128-Bit-Prüfsumme für jede Datei
das hat eine passende Größe. Die Generierung der Prüfsummen bedeutet, dass beide Seiten dies tun
viel Festplatten-I/O-Vorgang für das Lesen aller Daten in den Dateien bei der Übertragung aufwenden (und
Dies geschieht vor dem Lesen, das zum Übertragen geänderter Dateien durchgeführt wird. Dies ist also der Fall
kann die Dinge erheblich verlangsamen.
Die sendende Seite generiert ihre Prüfsummen, während sie den Dateisystem-Scan durchführt
Dadurch wird die Liste der verfügbaren Dateien erstellt. Der Empfänger generiert seine Prüfsummen
Wenn nach geänderten Dateien gesucht wird, wird eine Prüfsumme für alle Dateien erstellt, die die gleichen Änderungen aufweisen
Größe wie die entsprechende Absenderdatei: Dateien mit entweder einer geänderten Größe oder einer
geänderte Prüfsumme werden zur Übertragung ausgewählt.
Beachten Sie, dass rsync dies immer überprüft übertragen Datei war korrekt
auf der Empfangsseite durch Überprüfung einer Prüfsumme für die gesamte Datei rekonstruiert
generiert, wenn die Datei übertragen wird, sondern automatisch nach der Übertragung
Die Überprüfung hat nichts mit der Option „Does this“ vor der Übertragung zu tun
Datei muss aktualisiert werden?" prüfen.
Für Protokoll 30 und höher (erstmals unterstützt in 3.0.0) ist die verwendete Prüfsumme MD5.
Bei älteren Protokollen wird als Prüfsumme MD4 verwendet.
-a, --Archiv
Dies ist äquivalent zu -rlptgoD. Es ist eine schnelle Möglichkeit zu sagen, dass Sie eine Rekursion wünschen und
Ich möchte fast alles bewahren (wobei -H eine bemerkenswerte Auslassung darstellt). Die einzige
Ausnahme von der oben genannten Gleichwertigkeit ist, wenn --Dateien-von angegeben ist, in diesem Fall
-r ist nicht impliziert.
Beachten Sie, dass -a die nicht bewahren Hardlinks, denn das Finden mehrfach verknüpfter Dateien ist
teuer. Sie müssen gesondert angeben -H.
--keine Option
Sie können eine oder mehrere implizite Optionen deaktivieren, indem Sie dem Optionsnamen ein Präfix voranstellen
"NEIN-". Möglicherweise wird nicht allen Optionen ein „Nein-“ vorangestellt: nur Optionen, die impliziert sind
durch andere Optionen (z --nicken, --keine Dauerwellen) oder haben unterschiedliche Standardeinstellungen in verschiedenen
Umstände (z --no-whole-file, --no-blocking-io, --no-dirs). Sie können angeben
entweder der kurze oder der lange Optionsname nach dem „no-“-Präfix (z. B --noch ist das
wie --no-relative).
Zum Beispiel: wenn Sie verwenden möchten -a (--Archiv), aber ich will nicht -o (--Eigentümer), stattdessen
der Konvertierung -a in -rlptgD, könnten Sie angeben -a --nein-o (oder -a --kein Besitzer).
Die Reihenfolge der Optionen ist wichtig: wenn Sie angeben --noch -aden -r ganz ohne irgendetwas tun oder drücken zu müssen.
würde am Ende eingeschaltet werden, das Gegenteil von -a --noch. Beachten Sie auch, dass die
Nebenwirkungen der --Dateien-von Option sind NICHT positionell, da sie sich auf die auswirkt
Standardzustand mehrerer Optionen und ändert geringfügig die Bedeutung von -a (Siehe
--Dateien-von Option für weitere Details).
-R, - rekursiv
Dies weist rsync an, Verzeichnisse rekursiv zu kopieren. Siehe auch --dir (-d).
Ab rsync 3.0.0 ist der verwendete rekursive Algorithmus nun ein inkrementeller Scan
Das verbraucht viel weniger Speicher als zuvor und beginnt mit der Übertragung nach dem Scannen
der ersten Verzeichnisse sind fertiggestellt. Nur dieser inkrementelle Scan
wirkt sich auf unseren Rekursionsalgorithmus aus und verändert eine nicht rekursive Übertragung nicht. Es
ist ebenfalls nur möglich, wenn beide Enden der Übertragung mindestens Version 3.0.0 haben.
Einige Optionen erfordern, dass rsync die vollständige Dateiliste kennt, daher deaktivieren diese Optionen die
inkrementeller Rekursionsmodus. Diese beinhalten: --delete-before, --delete-after,
--prune-empty-dirs und --delay-updates. Aus diesem Grund ist der Standardlöschmodus
wenn Sie angeben --löschen ist jetzt --delete-during wenn beide Enden der Verbindung
sind mindestens 3.0.0 (verwenden Sie --del or --delete-during um diese verbesserte Löschung zu beantragen
Modus explizit angeben). Siehe auch die --delete-delay Option, die eine bessere Wahl ist als
mit automatisierten --delete-after.
Die inkrementelle Rekursion kann mit deaktiviert werden --no-inc-rekursiv Option oder seine
kürzere --nein-ir auch bekannt
-R, --relativ
Verwenden Sie relative Pfade. Dies bedeutet, dass die vollständigen Pfadnamen im Befehl angegeben sind
Zeile werden an den Server gesendet und nicht nur die letzten Teile des Dateinamens. Das
ist besonders nützlich, wenn Sie mehrere verschiedene Verzeichnisse gleichzeitig versenden möchten
gleiche Zeit. Wenn Sie beispielsweise diesen Befehl verwendet haben:
rsync -av /foo/bar/baz.c remote:/ tmp /
... dies würde eine Datei mit dem Namen baz.c erstellen / tmp / auf dem Remote-Computer. Wenn stattdessen
du hast benutzt
rsync -avR /foo/bar/baz.c remote:/ tmp /
dann würde eine Datei mit dem Namen /tmp/foo/bar/baz.c auf dem Remote-Computer erstellt werden,
seinen vollen Weg bewahren. Diese zusätzlichen Pfadelemente werden als „implizite“ bezeichnet
Verzeichnisse“ (d. h. die Verzeichnisse „foo“ und „foo/bar“ im obigen Beispiel).
Ab rsync 3.0.0 sendet rsync diese impliziten Verzeichnisse immer als real
Verzeichnisse in der Dateiliste, auch wenn ein Pfadelement tatsächlich ein Symlink auf der ist
sendende Seite. Dies verhindert einige wirklich unerwartete Verhaltensweisen beim Kopieren des Vollbilds
Pfad einer Datei, von der Sie nicht wussten, dass sie einen symbolischen Link enthält. Wenn Sie wollen
Duplizieren Sie einen serverseitigen Symlink, schließen Sie den Symlink über seinen Pfad ein und
Referenzverzeichnis über seinen echten Pfad. Wenn Sie es mit einem älteren Rsync zu tun haben
Sendende Seite müssen Sie möglicherweise die verwenden --no-implied-dirs .
Es ist auch möglich, die Menge der gesendeten Pfadinformationen wie implizit zu begrenzen
Verzeichnisse für jeden von Ihnen angegebenen Pfad. Mit einem modernen Rsync auf der Senderseite
(ab 2.6.7) können Sie einen Punkt und einen Schrägstrich in den Quellpfad einfügen, z
Dies:
rsync -avR /foo/./bar/baz.c remote:/ tmp /
Dadurch würde /tmp/bar/baz.c auf dem Remote-Computer erstellt. (Beachten Sie, dass der Punkt sein muss
gefolgt von einem Schrägstrich, also „/foo/.“ würde nicht abgekürzt werden.) Für ältere rsync
Versionen müssten Sie ein chdir verwenden, um den Quellpfad einzuschränken. Zum Beispiel,
beim Pushen von Dateien:
(cd /foo; rsync -avR bar/baz.c remote:/ tmp /)
(Beachten Sie, dass die Parens die beiden Befehle in einer Sub-Shell ablegen, sodass das „cd“
Der Befehl bleibt für zukünftige Befehle nicht wirksam.) Wenn Sie Dateien abrufen
Verwenden Sie von einem älteren Rsync diese Redewendung (jedoch nur für eine Nicht-Daemon-Übertragung):
rsync -avR --rsync-path="cd /foo; rsync" \
remote:bar/baz.c / tmp /
--no-implied-dirs
Diese Option beeinflusst das Standardverhalten des --relativ Möglichkeit. Wann ist es
angegeben, die Attribute der implizierten Verzeichnisse aus den Quellnamen sind es nicht
in der Überweisung enthalten. Dies bedeutet, dass die entsprechenden Pfadelemente auf der
Zielsystem bleiben unverändert, sofern vorhanden, und fehlende Angaben werden impliziert
Verzeichnisse werden mit Standardattributen erstellt. Dies lässt diese sogar implizit zu
Pfadelemente weisen große Unterschiede auf, z. B. wenn sie ein symbolischer Link zu einem Verzeichnis sind
die Empfangsseite.
Zum Beispiel, wenn ein Befehlszeilenargument oder ein Files-from-Eintrag rsync zur Übertragung anweist
die Datei „path/foo/file“, die Verzeichnisse „path“ und „path/foo“ sind impliziert, wenn
--relativ wird eingesetzt. Wenn „path/foo“ ein symbolischer Link zu „bar“ auf dem Zielsystem ist,
Der empfangende Rsync würde normalerweise „path/foo“ löschen, es als Verzeichnis neu erstellen,
und empfangen Sie die Datei im neuen Verzeichnis. Mit --no-implied-dirs, das Empfangen
rsync aktualisiert „path/foo/file“ unter Verwendung der vorhandenen Pfadelemente, was bedeutet, dass
Die Datei wird schließlich in „Pfad/Leiste“ erstellt. Eine andere Möglichkeit, diesen Link herzustellen
Konservierung ist die Verwendung der --keep-dirlinks Option (die sich auch auf Symlinks auswirkt
in Verzeichnisse im weiteren Verlauf der Übertragung).
Wenn Sie Dateien von einem Rsync abrufen, der älter als 3.0.0 ist, müssen Sie möglicherweise diese Option verwenden
wenn die sendende Seite einen Symlink in dem von Ihnen angeforderten Pfad hat und Sie dies implizit wünschen
Verzeichnisse, die wie normale Verzeichnisse übertragen werden sollen.
-B, --Sicherung
Mit dieser Option werden bereits vorhandene Zieldateien entsprechend umbenannt
übertragen oder gelöscht. Sie können steuern, wohin die Sicherungsdatei verschoben wird und was (wenn).
any) Suffix wird mit dem angehängt --backup-dir und --Suffix nach.
Beachten Sie Folgendes: Wenn Sie nichts angeben --backup-dir, (1) die --omit-dir-times Option wird
impliziert sein, und (2) wenn --löschen ist auch in Kraft (ohne --löschen-ausgeschlossen),
rsync fügt am Ende aller Ihrer Dateien eine „Schutz“-Filterregel für das Backup-Suffix hinzu
vorhandene Ausschlüsse (z. B -f "P *~"). Dadurch werden zuvor gesicherte Dateien verhindert
vor dem Löschen. Beachten Sie, dass dies möglich ist, wenn Sie Ihre eigenen Filterregeln angeben
Sie müssen Ihre eigene Ausschluss-/Schutzregel irgendwo weiter oben manuell einfügen
Liste so, dass sie eine ausreichend hohe Priorität hat, um wirksam zu sein (z. B. wenn Ihre Regeln
Geben Sie einen abschließenden Einschluss/Ausschluss von „*“ an, die automatisch hinzugefügte Regel würde dies niemals tun
erreicht).
--backup-dir=VERZEICHNIS
In Kombination mit dem --Sicherung Mit dieser Option wird rsync angewiesen, alle Backups darin zu speichern
das angegebene Verzeichnis auf der Empfängerseite. Dies kann für inkrementelle Zwecke verwendet werden
Backups. Sie können zusätzlich ein Backup-Suffix mit angeben --Suffix ganz ohne irgendetwas tun oder drücken zu müssen.
(Andernfalls behalten die im angegebenen Verzeichnis gesicherten Dateien ihr Original
Dateinamen).
Beachten Sie, dass das Sicherungsverzeichnis relativ zu ist, wenn Sie einen relativen Pfad angeben
das Zielverzeichnis, daher möchten Sie wahrscheinlich entweder einen absoluten Pfad angeben
oder ein Pfad, der mit „../“ beginnt. Wenn ein rsync-Daemon der Empfänger ist, erfolgt das Backup
dir darf die Pfadhierarchie des Moduls nicht verlassen, achten Sie also besonders darauf, es nicht zu löschen
kopieren oder hineinkopieren.
--suffix=SUFFIX
Mit dieser Option können Sie das standardmäßige Backup-Suffix überschreiben, das mit verwendet wird --Sicherung
(-b) Möglichkeit. Das Standardsuffix ist ein ~, wenn nicht --Backup-Verzeichnis angegeben wurde, sonst
es ist eine leere Zeichenfolge.
-du, --aktualisieren
Dies zwingt rsync dazu, alle Dateien zu überspringen, die auf dem Ziel vorhanden sind und über eine verfügen
geänderte Zeit, die neuer als die Quelldatei ist. (Wenn eine vorhandene Zieldatei
Hat eine Änderungszeit, die der der Quelldatei entspricht, wird sie bei der Größe aktualisiert
sind anders.)
Beachten Sie, dass dies keine Auswirkungen auf das Kopieren von Verzeichnissen, Symlinks oder anderen Besonderheiten hat
Dateien. Außerdem besteht immer ein Unterschied im Dateiformat zwischen Sender und Empfänger
als wichtig genug für ein Update angesehen, unabhängig davon, welches Datum darauf steht
Objekte. Mit anderen Worten, wenn die Quelle ein Verzeichnis hat, in dem das Ziel ein Verzeichnis hat
Datei würde die Übertragung unabhängig von den Zeitstempeln erfolgen.
Bei dieser Option handelt es sich um eine Übertragungsregel, nicht um einen Ausschluss, sodass sie sich nicht auf die Daten auswirkt
geht in die Dateilisten und hat daher keinen Einfluss auf Löschungen. Es begrenzt nur die
Dateien, deren Übertragung der Empfänger anfordert.
--an Ort und Stelle
Diese Option ändert, wie rsync eine Datei überträgt, wenn ihre Daten aktualisiert werden müssen:
anstelle der Standardmethode, bei der eine neue Kopie der Datei erstellt und in verschoben wird
Wenn der Vorgang abgeschlossen ist, schreibt rsync stattdessen die aktualisierten Daten direkt in die
Zieldatei.
Dies hat mehrere Auswirkungen:
o Hardlinks sind nicht defekt. Dies bedeutet, dass die neuen Daten durch sichtbar sind
andere feste Links zur Zieldatei. Darüber hinaus Kopierversuche
Es entstehen unterschiedliche Quelldateien auf eine mehrfach verknüpfte Zieldatei
in einem „Tauziehen“, bei dem sich die Zieldaten hin und her ändern.
o Verwendete Binärdateien können nicht aktualisiert werden (entweder verhindert das Betriebssystem dies).
passiert, oder Binärdateien, die versuchen, ihre Daten auszutauschen, werden sich schlecht verhalten oder
Absturz).
o Die Daten der Datei befinden sich während der Übertragung in einem inkonsistenten Zustand
bleibt bestehen, wenn die Übertragung unterbrochen wird oder ein Update fehlschlägt.
o Eine Datei, in die rsync nicht schreiben kann, kann nicht aktualisiert werden. Während ein Superuser dies kann
Um eine Datei zu aktualisieren, muss einem normalen Benutzer Schreibberechtigung dafür erteilt werden
Öffnen der Datei, damit das Schreiben erfolgreich ist.
o Die Effizienz des Delta-Transfer-Algorithmus von rsync kann ggf. verringert sein
Daten in der Zieldatei werden überschrieben, bevor sie in eine kopiert werden können
Position später in der Datei. Dies gilt nicht, wenn Sie verwenden --Sicherung, Da
rsync ist intelligent genug, um die Sicherungsdatei als Basisdatei für zu verwenden
Übertragung.
WARNUNG: Sie sollten diese Option nicht zum Aktualisieren von Dateien verwenden, auf die zugegriffen wird
Seien Sie also vorsichtig, wenn Sie sich für eine Kopie entscheiden.
Diese Option ist nützlich für die Übertragung großer Dateien mit blockbasierten Änderungen oder
angehängte Daten und auch auf Systemen, die festplattengebunden und nicht netzwerkgebunden sind. Es kann
Sie tragen außerdem dazu bei, dass ein Dateisystem-Snapshot beim Kopieren beim Schreiben nicht vom Gesamtbild abweicht
Inhalt einer Datei, die nur geringfügige Änderungen aufweist.
Die Option impliziert --teilweise (da eine unterbrochene Übertragung die Datei nicht löscht
Datei), aber Konflikte mit --partial-dir und --delay-updates. Vor rsync 2.6.4
--an Ort und Stelle war auch nicht kompatibel mit --compare-dest und --link-dest.
--anhängen
Dies führt dazu, dass rsync eine Datei aktualisiert, indem Daten an das Ende der Datei angehängt werden.
Dabei wird davon ausgegangen, dass die auf der Empfängerseite bereits vorhandenen Daten identisch sind
mit dem Dateianfang auf der Senderseite. Wenn eine Datei übertragen werden muss
und seine Größe am Empfänger ist gleich oder länger als die Größe am Sender, die
Datei wird übersprungen. Dies beeinträchtigt nicht die Aktualisierung des Nichtinhalts einer Datei
Attribute (z. B. Berechtigungen, Eigentum usw.), wenn dies für die Datei nicht erforderlich ist
übertragen werden, noch hat es Auswirkungen auf die Aktualisierung etwaiger nicht regulärer Dateien. Impliziert
--an Ort und Stelle, steht aber nicht im Widerspruch zu --spärlich (da es immer a erweitert
Dateilänge).
--append-verify
Das funktioniert genauso wie das --anhängen Option, aber die vorhandenen Daten auf dem Empfang
Seite ist im Schritt der Überprüfung der vollständigen Dateiprüfsumme enthalten, was dazu führt, dass a
Datei, die erneut gesendet werden soll, wenn der letzte Überprüfungsschritt fehlschlägt (rsync verwendet ein normales,
nicht anhängend --an Ort und Stelle Übertragung für den erneuten Versand).
Hinweis: Vor rsync 3.0.0 war die --anhängen Option funktionierte wie --append-verify, Also, wenn
Sie interagieren mit einem älteren Rsync (oder die Übertragung verwendet ein älteres Protokoll).
bis 30), wird durch Angabe einer der beiden Anhängeoptionen eine initiiert --append-verify Übertragung.
-D, --dir
Weisen Sie die sendende Seite an, alle gefundenen Verzeichnisse einzubeziehen. nicht wie
- rekursiv, wird der Inhalt eines Verzeichnisses nicht kopiert, es sei denn, der Verzeichnisname
angegeben ist „.“ oder endet mit einem abschließenden Schrägstrich (z. B. „.“, „dir/.“, „dir/“ usw.).
Ohne diese Option oder die - rekursiv Option, rsync überspringt alle Verzeichnisse
Begegnungen (und geben für jede Begegnung eine entsprechende Meldung aus). Wenn Sie beides angeben
--dir und - rekursiv, - rekursiv hat Vorrang.
Die --dir Option wird durch die impliziert --Dateien-von Option oder die --list-only ganz ohne irgendetwas tun oder drücken zu müssen.
(einschließlich einer impliziten --list-only Nutzung) wenn - rekursiv wurde nicht angegeben (damit
Verzeichnisse sind in der Auflistung ersichtlich). Angeben --no-dirs (oder --nicken) wenn Sie wollen
Schalten Sie dies aus.
Es gibt auch eine Abwärtskompatibilitäts-Hilfsoption, --old-dirs (oder --old-d) Das
weist rsync an, einen Hack von „-r --exclude='/*/*'“ zu verwenden, um einen älteren rsync dazu zu bringen, a aufzulisten
einzelnes Verzeichnis ohne Rekursion.
- l, - Links
Wenn Symlinks gefunden werden, erstellen Sie den Symlink am Ziel neu.
-L, --copy-links
Wenn symbolische Links gefunden werden, ist das Element, auf das sie verweisen (der Referent).
kopiert und nicht der Symlink. In älteren Versionen von rsync gab es diese Option auch
der Nebeneffekt, der empfangenden Seite mitzuteilen, dass sie Symlinks folgen soll, beispielsweise Symlinks
zu Verzeichnissen. In einem modernen Rsync wie diesem müssen Sie angeben
--keep-dirlinks (-K), um dieses zusätzliche Verhalten zu erhalten. Die einzige Ausnahme ist wann
Senden von Dateien an einen Rsync, der zu alt ist, um ihn zu verstehen -K – in diesem Fall die -L
Option wird immer noch den Nebeneffekt haben -K auf diesem älteren empfangenden rsync.
--copy-unsafe-links
Dies weist rsync an, den Verweis auf symbolische Links zu kopieren, die außerhalb des
kopierter Baum. Absolute Symlinks werden ebenfalls wie gewöhnliche Dateien behandelt, und das gilt auch
alle symbolischen Links im Quellpfad selbst, wenn --relativ wird eingesetzt. Diese Option hat nein
zusätzlicher Effekt, wenn --copy-links wurde auch angegeben.
--safe-links
Dies weist rsync an, alle symbolischen Links zu ignorieren, die außerhalb des kopierten Baums zeigen.
Alle absoluten Symlinks werden ebenfalls ignoriert. Verwenden dieser Option in Verbindung mit
--relativ kann zu unerwarteten Ergebnissen führen.
--munge-links
Diese Option weist rsync an, (1) alle Symlinks auf der Empfängerseite auf eine bestimmte Weise zu ändern
Dadurch werden sie unbrauchbar, aber wiederherstellbar (siehe unten), oder (2) um Symlinks aufzuheben
die sendende Seite, die in einem mungierten Zustand gespeichert wurde. Dies ist nützlich, wenn Sie
Vertrauen Sie der Datenquelle nicht ganz, um nicht zu versuchen, einen Symlink zu a einzufügen
unerwarteter Ort.
Die Art und Weise, wie rsync die Verwendung von Symlinks deaktiviert, besteht darin, jedem die Zeichenfolge voranzustellen
„/rsyncd-munged/“. Dies verhindert, dass die Links solange genutzt werden
Verzeichnis existiert nicht. Wenn diese Option aktiviert ist, verweigert rsync die Ausführung, wenn
Dieser Pfad ist ein Verzeichnis oder ein symbolischer Link zu einem Verzeichnis.
Die Option wirkt sich nur auf die Client-Seite der Übertragung aus, also bei Bedarf
Auswirkungen auf den Server haben, geben Sie es über an --remote-option. (Beachten Sie, dass bei einer lokalen Übertragung
Die Clientseite ist der Absender.)
Diese Option hat keine Auswirkungen auf einen Daemon, da der Daemon selbst konfiguriert, ob er dies möchte
mungierte Symlinks über den Parameter „munge symlinks“. Siehe auch die „munge-symlinks“
Perl-Skript im Support-Verzeichnis des Quellcodes.
-k, --copy-dirlinks
Diese Option bewirkt, dass die sendende Seite einen symbolischen Link zu einem Verzeichnis so behandelt, als wäre es ein solcher
waren ein echtes Verzeichnis. Dies ist nützlich, wenn Sie keine Symlinks möchten
Nicht-Verzeichnisse sind betroffen, da sie sie verwenden würden --copy-links.
Ohne diese Option, wenn die sendende Seite ein Verzeichnis durch einen Symlink zu ersetzt hat
In einem Verzeichnis löscht die empfangende Seite alles, was dem neuen im Weg steht
Symlink, einschließlich einer Verzeichnishierarchie (sofern --Macht or --löschen in
bewirken).
Web Link --keep-dirlinks für eine analoge Option für die Empfangsseite.
--copy-dirlinks gilt für alle symbolischen Links zu Verzeichnissen in der Quelle. Falls Sie es wollen
Um nur wenigen angegebenen Symlinks zu folgen, können Sie sie als Trick verwenden
zusätzliche Quellargumente mit einem abschließenden Schrägstrich, using --relativ um die Wege zu machen
passen genau zusammen. Zum Beispiel:
rsync -r --relative src/./ src/./follow-me/ dest/
Dies funktioniert aufgrund von Rsync-Aufrufen lstat(2) auf dem Quellargument wie angegeben und dem
abschließender Schrägstrich macht lstat(2) Folgen Sie dem Symlink, wodurch ein Verzeichnis im entsteht
Dateiliste, die den beim Scan von „src/./“ gefundenen Symlink überschreibt.
-K, --keep-dirlinks
Diese Option bewirkt, dass die empfangende Seite einen Symlink zu einem Verzeichnis so behandelt, als ob
es wäre ein echtes Verzeichnis, aber nur, wenn es mit einem echten Verzeichnis des Absenders übereinstimmt.
Ohne diese Option würde der Symlink des Empfängers gelöscht und durch einen ersetzt
echtes Verzeichnis.
Angenommen, Sie übertragen ein Verzeichnis „foo“, das eine Datei „file“ enthält.
aber „foo“ ist ein symbolischer Link zum Verzeichnis „bar“ auf dem Receiver. Ohne
--keep-dirlinks, der Empfänger löscht den Symlink „foo“, erstellt ihn als Verzeichnis neu,
und empfängt die Datei im neuen Verzeichnis. Mit --keep-dirlinks, der Empfänger
Der Symlink bleibt erhalten und „file“ landet in „bar“.
Ein Hinweis zur Vorsicht: Wenn Sie verwenden --keep-dirlinks, müssen Sie allen symbolischen Links vertrauen
in der Kopie! Wenn es einem nicht vertrauenswürdigen Benutzer möglich ist, einen eigenen Symlink zu erstellen
In ein beliebiges Verzeichnis könnte der Benutzer dann (bei einer späteren Kopie) den Symlink ersetzen
mit einem echten Verzeichnis und wirken sich auf den Inhalt des Verzeichnisses aus, auf das der Symlink verweist
Verweise. Für Sicherungskopien ist es besser, so etwas wie eine Bindung zu verwenden
mount anstelle eines Symlinks, um Ihre Empfangshierarchie zu ändern.
Web Link --copy-dirlinks für eine analoge Option für die sendende Seite.
-H, --hard-links
Dadurch wird rsync angewiesen, in der Quelle nach fest verknüpften Dateien zu suchen und diese miteinander zu verknüpfen
entsprechende Dateien auf dem Ziel. Ohne diese Option werden fest verknüpfte Dateien in
Die Quelle wird so behandelt, als wären sie separate Dateien.
Diese Option stellt NICHT unbedingt sicher, dass das Muster der Hardlinks auf dem
Das Ziel stimmt genau mit dem der Quelle überein. Fälle, in denen das Ziel möglicherweise
Zu den besonders harten Links gehören die folgenden:
o Wenn das Ziel überflüssige Hardlinks enthält (mehr Links als vorhanden).
in der Quelldateiliste vorhanden sind), werden sie vom Kopieralgorithmus nicht beschädigt
ausdrücklich. Wenn jedoch einer oder mehrere der Pfade inhaltliche Unterschiede aufweisen,
Der normale Dateiaktualisierungsprozess wird diese zusätzlichen Links zerstören (es sei denn, Sie sind es).
Verwendung der --an Ort und Stelle Möglichkeit).
o Wenn Sie a angeben --link-dest Verzeichnis, das Hardlinks enthält, die Verlinkung
der Zieldateien gegen die --link-dest Dateien können einige Pfade verursachen
im Zielort miteinander verbunden werden --link-dest
Assoziationen.
Beachten Sie, dass rsync nur feste Links zwischen Dateien erkennen kann, die sich innerhalb von befinden
Transferset. Wenn rsync eine Datei aktualisiert, zu der zusätzliche Hardlink-Verbindungen bestehen
Dateien außerhalb der Übertragung, wird diese Verknüpfung unterbrochen. Wenn Sie versucht sind, es zu verwenden
die --an Ort und Stelle Um diesen Bruch zu vermeiden, achten Sie sehr darauf, dass Sie wissen, wie Sie vorgehen
Dateien werden aktualisiert, sodass Sie sicher sein können, dass keine unbeabsichtigten Änderungen auftreten
aufgrund verbleibender Hardlinks (und siehe die --an Ort und Stelle Option für weitere Vorbehalte).
Wenn die inkrementelle Rekursion aktiv ist (siehe - rekursiv), kann rsync ein fehlendes übertragen
eine fest verknüpfte Datei, bevor festgestellt wird, dass ein anderer Link für diesen Inhalt vorhanden ist
anderswo in der Hierarchie. Die Genauigkeit der Übertragung wird dadurch nicht beeinträchtigt
(d. h. welche Dateien fest miteinander verknüpft sind), nur ihre Effizienz (d. h. das Kopieren der
Daten für eine neue, frühe Kopie einer fest verknüpften Datei, die später hätte gefunden werden können
bei der Übertragung in ein anderes Mitglied des fest verknüpften Dateisatzes). Ein Weg, um
Um diese Ineffizienz zu vermeiden, deaktivieren Sie die inkrementelle Rekursion mithilfe von
--no-inc-rekursiv .
-P, --dauerwelle
Diese Option bewirkt, dass der empfangende rsync die Zielberechtigungen als festlegt
Identisch mit den Quellberechtigungen. (Siehe auch die --chmod Option für eine Möglichkeit zum Ändern
was rsync als Quellberechtigungen ansieht.)
Wenn diese Option ist WOW!, Berechtigungen werden wie folgt festgelegt:
o Vorhandene Dateien (einschließlich aktualisierter Dateien) behalten ihre vorhandenen Berechtigungen.
obwohl die --executability Die Option ändert möglicherweise nur die Ausführungsberechtigung
für die Datei.
o Bei neuen Dateien werden die „normalen“ Berechtigungsbits auf die der Quelldatei gesetzt
Berechtigungen, die mit den Standardberechtigungen des Empfangsverzeichnisses maskiert sind
(entweder die umask des empfangenden Prozesses oder die über die angegebenen Berechtigungen
(Standard-ACL des Zielverzeichnisses) und ihre speziellen Berechtigungsbits
deaktiviert, außer in dem Fall, in dem ein neues Verzeichnis ein setgid-Bit erbt
sein übergeordnetes Verzeichnis.
Also, wenn --dauerwelle und --executability Sind beide deaktiviert, ist das Verhalten von rsync das
Das gleiche wie bei anderen Dienstprogrammen zum Kopieren von Dateien, z cp(1) und Teer(1).
Zusammenfassend: Um Zieldateien (sowohl alten als auch neuen) die Quellberechtigungen zu erteilen,
- --dauerwelle. Um neuen Dateien die Ziel-Standardberechtigungen zu erteilen (beim Verlassen
vorhandene Dateien unverändert bleiben), stellen Sie sicher, dass die --dauerwelle Option ist aus und verwenden
--chmod=ugo=rwX (wodurch sichergestellt wird, dass alle nicht maskierten Bits aktiviert werden). Wenn du würdest
Um die Eingabe dieses letzteren Verhaltens zu vereinfachen, können Sie einen Popt-Alias dafür definieren
B. indem Sie diese Zeile in die Datei einfügen ~/.popt (Das Folgende definiert die -Z
Option und enthält --no-g, um die Standardgruppe des Zielverzeichnisses zu verwenden):
rsync-Alias -Z --no-p --no-g --chmod=ugo=rwX
Sie könnten diese neue Option dann in einem Befehl wie diesem verwenden:
rsync -avZ src/ dest/
(Vorsicht: Stellen Sie sicher, dass -a folgt nicht -Z, oder es werden die beiden wieder aktiviert
„--no-*“-Optionen oben erwähnt.)
Die Beibehaltung des Setgid-Bits des Ziels in neu erstellten Verzeichnissen, wenn
--dauerwelle is off wurde in rsync 2.6.7 hinzugefügt. Ältere rsync-Versionen fälschlicherweise
Die drei speziellen Berechtigungsbits für neu erstellte Dateien wurden beibehalten, wenn --dauerwelle
war ausgeschaltet, während die Setgid-Bit-Einstellung des Ziels bei einem neu erstellten Ziel überschrieben wurde
Verzeichnis. Die Standard-ACL-Einhaltung wurde dem ACL-Patch für rsync 2.6.7 hinzugefügt
Ältere (oder nicht ACL-fähige) Rsyncs verwenden die umask, auch wenn Standard-ACLs vorhanden sind.
(Beachten Sie, dass es die Version des empfangenden Rsync ist, die diese beeinflusst
Verhaltensweisen.)
-IS, --executability
Diese Option bewirkt, dass rsync die Ausführbarkeit (oder Nichtausführbarkeit) von beibehält
reguläre Dateien wann --dauerwelle ist nicht aktiviert. Es wird davon ausgegangen, dass es sich um eine reguläre Datei handelt
ausführbar, wenn in seinen Berechtigungen mindestens ein „x“ aktiviert ist. Wenn ein vorhandener
Die Ausführbarkeit der Zieldatei unterscheidet sich von der der entsprechenden Quelle
Datei ändert rsync die Berechtigungen der Zieldatei wie folgt:
o Um eine Datei nicht ausführbar zu machen, deaktiviert rsync alle ihre „x“-Berechtigungen.
o Um eine Datei ausführbar zu machen, aktiviert rsync jede „x“-Berechtigung, die über eine verfügt
entsprechende „r“-Berechtigung aktiviert.
If --dauerwelle aktiviert ist, wird diese Option ignoriert.
-EIN, --acls
Diese Option bewirkt, dass rsync die Ziel-ACLs so aktualisiert, dass sie mit denen übereinstimmen
Quell-ACLs. Die Option impliziert auch --dauerwelle.
Für diese Option müssen die Quell- und Zielsysteme über kompatible ACL-Einträge verfügen
richtig zu funktionieren. Siehe die --fake-super Option für eine Möglichkeit zum Sichern und Wiederherstellen von ACLs
die nicht kompatibel sind.
-X, --xattrs
Diese Option bewirkt, dass rsync die erweiterten Zielattribute aktualisiert
das Gleiche wie die Quellen.
Bei Systemen, die Namespaces mit erweiterten Attributen unterstützen, erfolgt eine Kopie durch a
Superuser kopiert alle Namespaces außer system.*. Ein normaler Benutzer kopiert nur die
user.* Namespace. Um wie gewohnt Nichtbenutzer-Namespaces sichern und wiederherstellen zu können
Benutzer, siehe die --fake-super .
Beachten Sie, dass diese Option keine speziellen xattr-Werte von rsync kopiert (z. B. diejenigen, die von verwendet werden).
--fake-super), es sei denn, Sie wiederholen die Option (z. B. -XX). Dieser Modus „Alle xattrs kopieren“.
nicht verwendbar mit --fake-super.
--chmod
Diese Option weist rsync an, einen oder mehrere durch Kommas getrennte „chmod“-Modi auf die anzuwenden
Erlaubnis der Dateien in der Übertragung. Der resultierende Wert wird so behandelt, als ob
Es handelte sich um die Berechtigungen, die die sendende Seite für die Datei bereitgestellt hat
dass diese Option scheinbar keine Auswirkungen auf vorhandene Dateien hat, wenn --dauerwelle ist nicht
aktiviert.
Zusätzlich zu den normalen Parsing-Regeln, die in angegeben sind chmod(1) Hilfeseite, Sie können
Geben Sie ein Element an, das nur für ein Verzeichnis gelten soll, indem Sie ihm ein „D“ voranstellen.
Oder geben Sie ein Element an, das nur für eine Datei gelten soll, indem Sie ihm ein „F“ voranstellen.
Folgendes stellt beispielsweise sicher, dass alle Verzeichnisse als set-gid markiert werden:
dass keine Dateien für andere beschreibbar sind, dass sowohl Benutzer als auch Gruppen beschreibbar sind,
und dass beide über alle Bits hinweg konsistent ausführbar sind:
--chmod=Dg+s,ug+w,Fo-w,+X
Die Verwendung von Zahlen im Oktalmodus ist ebenfalls zulässig:
--chmod=D2775,F664
Es ist auch zulässig, mehrere anzugeben --chmod Optionen, wie jede zusätzliche Option
wurde gerade an die Liste der vorzunehmenden Änderungen angehängt.
Weitere Informationen im --dauerwelle und --executability Optionen für den resultierenden Berechtigungswert
kann auf die Dateien in der Übertragung angewendet werden.
-Ö, --Eigentümer
Diese Option bewirkt, dass rsync den Eigentümer der Zieldatei auf denselben Eigentümer festlegt
die Quelldatei, aber nur, wenn der empfangende rsync als Superuser ausgeführt wird
(siehe auch die --super und --fake-super Optionen). Ohne diese Option kann der Besitzer von
Neue und/oder übertragene Dateien werden auf der empfangenden Seite dem aufrufenden Benutzer zugewiesen.
Durch die Eigentumserhaltung werden standardmäßig übereinstimmende Namen zugeordnet, dies kann jedoch der Fall sein
Unter Umständen greifen Sie auf die Verwendung der ID-Nummer zurück (siehe auch die --numerische-ids
Option für eine ausführliche Diskussion).
-G, --Gruppe
Diese Option bewirkt, dass rsync die Gruppe der Zieldatei auf dieselbe setzt wie
die Quelldatei. Wenn das empfangende Programm nicht als Superuser ausgeführt wird (oder wenn
--nein-super angegeben wurde), gruppiert nur der aufrufende Benutzer auf der Empfangsseite
ist ein Mitglied von wird erhalten bleiben. Ohne diese Option wird die Gruppe auf eingestellt
Standardgruppe des aufrufenden Benutzers auf der Empfangsseite.
Durch die Beibehaltung der Gruppeninformationen werden standardmäßig übereinstimmende Namen zugeordnet, aber
kann unter Umständen auf die Verwendung der ID-Nummer zurückgreifen (siehe auch die
--numerische-ids Option für eine ausführliche Diskussion).
--Geräte
Diese Option bewirkt, dass rsync Zeichen- und Blockgerätedateien an die Fernbedienung überträgt
System, um diese Geräte neu zu erstellen. Diese Option hat keine Auswirkung, wenn der empfangende rsync
nicht als Superuser ausgeführt wird (siehe auch --super und --fake-super Optionen).
--Sonderangebote
Diese Option bewirkt, dass rsync spezielle Dateien wie benannte Sockets und Fifos überträgt.
-D Die -D Option ist äquivalent zu --Geräte --Sonderangebote.
-T, --mal
Dadurch wird rsync angewiesen, Änderungszeiten zusammen mit den Dateien und Aktualisierungen zu übertragen
sie auf dem Remote-System. Beachten Sie, dass die Optimierung erfolgt, wenn diese Option nicht verwendet wird
das Ausschließen von Dateien, die nicht geändert wurden, kann nicht wirksam sein; in anderen
Worte, ein fehlendes -t or -a bewirkt, dass sich die nächste Übertragung so verhält, als ob sie verwendet würde -I,
Dadurch werden alle Dateien aktualisiert (obwohl der Delta-Transfer-Algorithmus von rsync dies ermöglicht).
Das Update ist ziemlich effizient, wenn sich die Dateien nicht tatsächlich geändert haben, Sie sind viel
besser nutzen -t).
-Ö, --omit-dir-times
Dies weist rsync an, Verzeichnisse wegzulassen, wenn Änderungszeiten beibehalten werden sollen (siehe
--mal). Wenn NFS die Verzeichnisse auf der Empfangsseite freigibt, ist dies von Vorteil
Idee zu nutzen -O. Diese Option wird abgeleitet, wenn Sie verwenden --Sicherung ohne --backup-dir.
Diese Option hat auch den Nebeneffekt, dass eine frühzeitige Erstellung von Verzeichnissen vermieden wird
inkrementelle Rekursionskopien. Der Standard --inc-rekursiv Das Kopieren führt normalerweise zu einem
Erstellen Sie dazu frühzeitig alle Unterverzeichnisse in einem übergeordneten Verzeichnis
um dann sofort die Änderungszeit des übergeordneten Verzeichnisses einstellen zu können (ohne
Ich muss das verzögern, bis eine Menge rekursiver Kopiervorgänge abgeschlossen sind). Das
Eine frühzeitige Erstellung ist nicht erforderlich, wenn keine Verzeichnisänderungszeiten vorliegen
bleibt erhalten und wird daher übersprungen. Da früh erstellte Verzeichnisse nicht genau sind
Modus, Mtime oder Besitz, die Verwendung dieser Option kann hilfreich sein, wenn jemand möchte
Vermeiden Sie diese teilweise fertigen Verzeichnisse.
-J, --omit-link-times
Dies weist rsync an, Symlinks wegzulassen, wenn Änderungszeiten beibehalten werden (siehe
--mal).
--super
Dadurch wird die empfangende Seite angewiesen, Superuser-Aktivitäten zu versuchen, selbst wenn die
Der Empfang von rsync wurde nicht vom Superuser ausgeführt. Zu diesen Tätigkeiten gehören: Konservieren
Benutzer über die --Eigentümer Option, bei der alle Gruppen erhalten bleiben (nicht nur die des aktuellen Benutzers).
Gruppen) über die --Gruppen Option und Kopiergeräte über die --Geräte .
Dies ist nützlich für Systeme, die solche Aktivitäten ermöglichen, ohne der Superuser zu sein.
und auch um sicherzustellen, dass Sie Fehler erhalten, wenn die empfangende Seite dies nicht tut
Als Superuser ausführen. Um Superuser-Aktivitäten zu deaktivieren, kann der Superuser verwenden
--nein-super.
--fake-super
Wenn diese Option aktiviert ist, simuliert rsync Superuser-Aktivitäten durch
Speichern/Wiederherstellen der privilegierten Attribute über spezielle erweiterte Attribute
an jede Datei angehängt (nach Bedarf). Dazu gehören der Besitzer und die Gruppe der Datei (falls vorhanden).
ist nicht die Standardeinstellung), die Geräteinformationen der Datei (Geräte- und Spezialdateien werden erstellt als
leere Textdateien) und alle Berechtigungsbits, deren Setzen wir nicht zulassen
echte Datei (z. B. die echte Datei erhält uns, gs, ot aus Sicherheitsgründen) oder das würde die einschränken
Besitzerzugriff (da der echte Superuser jederzeit auf eine Datei zugreifen/Ändern kann, ist die
(Die von uns erstellten Dateien können vom erstellenden Benutzer jederzeit aufgerufen/geändert werden.) Diese Option
verwaltet auch ACLs (falls --acls angegeben wurde) und nicht-benutzerspezifische erweiterte Attribute (falls
--xattrs angegeben wurde).
Dies ist eine gute Möglichkeit, Daten ohne Verwendung eines Superusers zu sichern und ACLs zu speichern
von inkompatiblen Systemen.
Die --fake-super Die Option wirkt sich nur auf die Seite aus, auf der die Option verwendet wird. Beeinflussen
Verwenden Sie auf der Remote-Seite einer Remote-Shell-Verbindung die --remote-option (-M) Möglichkeit:
rsync -av -M--fake-super /src/ host:/dest/
Bei einer lokalen Kopie wirkt sich diese Option sowohl auf die Quelle als auch auf das Ziel aus. Wenn du
Möchten Sie eine lokale Kopie, um diese Option nur für die Zieldateien zu aktivieren, geben Sie an
-M--fake-super. Wenn Sie eine lokale Kopie wünschen, aktivieren Sie diese Option nur für die Quelle
Dateien, kombinieren --fake-super mit -M--super.
Diese Option wird von beiden außer Kraft gesetzt --super und --nein-super.
Siehe auch die Einstellung „fake super“ in der Datei rsyncd.conf des Daemons.
-S, --spärlich
Versuchen Sie, Dateien mit geringer Dichte effizient zu verarbeiten, damit sie weniger Platz beanspruchen
Ziel. Konflikte mit --an Ort und Stelle weil es nicht möglich ist, Daten zu überschreiben
in spärlicher Weise.
--preallocate
Dadurch wird der Empfänger angewiesen, jede Zieldatei ihrer endgültigen Größe zuzuordnen
bevor Daten in die Datei geschrieben werden. Rsync verwendet nur die echte Dateisystemebene
Vorabzuweisungsunterstützung von Linux fallen(2) Systemaufruf oder Cygwins
posix_fallocate(3), nicht die langsame Glibc-Implementierung, in die ein Null-Byte geschrieben wird
jeden Block.
Ohne diese Option sind größere Dateien möglicherweise nicht vollständig zusammenhängend im Dateisystem.
aber mit dieser Option wird rsync wahrscheinlich langsamer kopieren. Wenn das Ziel ist
kein Extent-unterstützendes Dateisystem (wie ext4, xfs, NTFS usw.), diese Option
möglicherweise überhaupt keine positive Wirkung haben.
-nicht, --Probelauf
Dadurch führt rsync einen Testlauf durch, der keine Änderungen vornimmt (und erzeugt
meistens die gleiche Ausgabe wie bei einem echten Lauf). Am häufigsten wird es in Kombination verwendet
an. Nach der Installation können Sie HEIC-Dateien mit der -in, - ausführlich und / oder -ich, --itemize-changes Optionen, um zu sehen, was ein rsync ist
Der Befehl wird ausgeführt, bevor er tatsächlich ausgeführt wird.
Die Ausgabe von --itemize-changes soll beim Trockenlauf genau das Gleiche sein und
ein anschließender echter Lauf (abgesehen von absichtlichen Tricks und Systemaufruffehlern); Wenn
Ist es nicht, das ist ein Fehler. Andere Ausgaben sollten weitgehend unverändert bleiben, können jedoch abweichen
einige Gegenden. Insbesondere werden bei einem Probelauf nicht die tatsächlichen Daten für Dateiübertragungen gesendet.
so --Fortschritt hat keine Auswirkung, die „Gesendeten Bytes“, „Empfangenen Bytes“, „Literaldaten“,
und „Matched Data“-Statistiken sind zu klein und der „Speedup“-Wert ist gleichwertig
zu einem Lauf, bei dem keine Dateiübertragungen erforderlich waren.
-W, --whole-file
Bei dieser Option wird der Delta-Transfer-Algorithmus von rsync nicht verwendet, sondern die gesamte Datei
stattdessen so gesendet, wie es ist. Die Übertragung kann schneller sein, wenn diese Option verwendet wird
Die Bandbreite zwischen den Quell- und Zielmaschinen ist höher als die Bandbreite
auf die Festplatte (insbesondere, wenn es sich bei der „Festplatte“ tatsächlich um ein vernetztes Dateisystem handelt). Das ist
die Standardeinstellung, wenn sowohl die Quelle als auch das Ziel als lokale Pfade angegeben sind, aber
nur, wenn keine Batch-Schreiboption aktiviert ist.
-X, --ein-Dateisystem
Dadurch wird rsync angewiesen, bei der Rekursion das Überschreiten einer Dateisystemgrenze zu vermeiden. Das macht
Beschränken Sie nicht die Möglichkeit des Benutzers, Elemente anzugeben, die aus mehreren Dateisystemen kopiert werden sollen.
nur die Rekursion von rsync durch die Hierarchie jedes Verzeichnisses, das der Benutzer verwendet
angegeben, und auch die analoge Rekursion auf der Empfängerseite beim Löschen.
Bedenken Sie auch, dass rsync einen „Bind“-Mount an dasselbe Gerät als eingeschaltet behandelt
das gleiche Dateisystem.
Wenn diese Option wiederholt wird, lässt rsync alle Mountpunktverzeichnisse aus der Kopie aus.
Andernfalls wird an jedem Einhängepunkt, auf den es trifft, ein leeres Verzeichnis eingefügt (unter Verwendung von
Die Attribute des gemounteten Verzeichnisses entsprechen denen des zugrunde liegenden Mount-Punkts
Verzeichnis sind nicht zugänglich).
Wenn rsync angewiesen wurde, Symlinks zu reduzieren (via --copy-links or
--copy-unsafe-links), wird ein symbolischer Link zu einem Verzeichnis auf einem anderen Gerät wie ein behandelt
Einhängepunkt. Symlinks zu Nichtverzeichnissen sind von dieser Option nicht betroffen.
--bestehende, --ignore-nicht vorhanden
Dadurch wird rsync angewiesen, das Erstellen nicht vorhandener Dateien (einschließlich Verzeichnisse) zu überspringen
noch am Ziel. Wenn diese Option mit dem kombiniert wird --ignore-existing
Option werden keine Dateien aktualisiert (was nützlich sein kann, wenn Sie nur Folgendes tun möchten).
überflüssige Dateien löschen).
Bei dieser Option handelt es sich um eine Übertragungsregel, nicht um einen Ausschluss, sodass sie sich nicht auf die Daten auswirkt
geht in die Dateilisten und hat daher keinen Einfluss auf Löschungen. Es begrenzt nur die
Dateien, deren Übertragung der Empfänger anfordert.
--ignore-existing
Dadurch wird rsync angewiesen, die Aktualisierung von Dateien zu überspringen, die bereits auf dem Ziel vorhanden sind (dies
die nicht Ignorieren Sie vorhandene Verzeichnisse, sonst würde nichts getan. Siehe auch
--bestehende.
Bei dieser Option handelt es sich um eine Übertragungsregel, nicht um einen Ausschluss, sodass sie sich nicht auf die Daten auswirkt
geht in die Dateilisten und hat daher keinen Einfluss auf Löschungen. Es begrenzt nur die
Dateien, deren Übertragung der Empfänger anfordert.
Diese Option kann für diejenigen nützlich sein, die Backups mit dem durchführen --link-dest Option, wenn
Sie müssen einen unterbrochenen Backup-Lauf fortsetzen. Seit einem --link-dest Lauf
wird in eine neue Verzeichnishierarchie kopiert (bei ordnungsgemäßer Verwendung), mit --ignorieren
vorhandenen stellt sicher, dass die bereits verarbeiteten Dateien nicht optimiert werden (was vermeidet).
eine Änderung der Berechtigungen für die fest verknüpften Dateien). Dies bedeutet, dass diese Option
betrachtet nur die vorhandenen Dateien in der Zielhierarchie selbst.
--remove-source-files
Dadurch wird rsync angewiesen, die Dateien von der sendenden Seite zu entfernen (d. h
Nicht-Verzeichnisse), die Teil der Übertragung sind und erfolgreich durchgeführt wurden
auf der Empfangsseite dupliziert.
Beachten Sie, dass Sie diese Option nur für Quelldateien verwenden sollten, die sich im Ruhezustand befinden. Wenn
Sie verwenden dies, um Dateien, die in einem bestimmten Verzeichnis angezeigt werden, dorthin zu verschieben
Stellen Sie bei einem anderen Host sicher, dass die fertigen Dateien in die Quelle umbenannt werden
Verzeichnis, nicht direkt hineingeschrieben, so dass rsync unmöglich a übertragen kann
Datei, die noch nicht vollständig geschrieben ist. Wenn Sie die Dateien nicht zuerst in a schreiben können
Wenn Sie ein anderes Verzeichnis erstellen, sollten Sie eine Namenssprache verwenden, die rsync vermeiden lässt
Übertragen von Dateien, die noch nicht fertig sind (z. B. nennen Sie die Datei „foo.new“, wenn sie ausgeführt wird).
geschrieben ist, benennen Sie es in „foo“ um, wenn es fertig ist, und verwenden Sie dann die Option
--exclude='*.new' für die rsync-Übertragung).
Ab 3.1.0 überspringt rsync die senderseitige Entfernung (und gibt einen Fehler aus).
wenn die Dateigröße oder die Änderungszeit nicht unverändert geblieben ist.
--löschen
Dies weist rsync an, überflüssige Dateien von der Empfängerseite zu löschen (solche, die
sind nicht auf der sendenden Seite), sondern nur für die Verzeichnisse, die vorhanden sind
synchronisiert. Sie müssen rsync gebeten haben, das gesamte Verzeichnis zu senden (z. B. „dir“ oder
„dir/“), ohne einen Platzhalter für den Inhalt des Verzeichnisses zu verwenden (z. B. „dir/*“)
Der Platzhalter wird von der Shell erweitert und rsync erhält somit eine Anfrage zur Übertragung
einzelne Dateien, nicht das übergeordnete Verzeichnis der Dateien. Dateien, die ausgeschlossen sind
Die Übertragung ist ebenfalls von einer Löschung ausgeschlossen, es sei denn, Sie nutzen die
--löschen-ausgeschlossen Option oder markieren Sie die Regeln als nur auf der Absenderseite übereinstimmend
(Siehe die Einschluss-/Ausschlussmodifikatoren im Abschnitt FILTERREGELN).
Vor rsync 2.6.7 hatte diese Option keine Auswirkung, es sei denn - rekursiv wurde
ermöglicht. Ab 2.6.7 werden auch Löschungen vorgenommen, wenn --dir (-d) abgestimmt ist, lautet
aktiviert, jedoch nur für Verzeichnisse, deren Inhalte kopiert werden.
Diese Option kann bei falscher Anwendung gefährlich sein! Es ist eine sehr gute Idee, zuerst
Versuchen Sie einen Lauf mit dem --Probelauf Option (-n), um zu sehen, welche Dateien sein werden
gelöscht.
Wenn die sendende Seite E/A-Fehler erkennt, werden alle Dateien gelöscht
Das Ziel wird automatisch deaktiviert. Dies dient dazu, temporäre Dateisysteme zu verhindern
Ausfälle (z. B. NFS-Fehler) auf der Senderseite verhindern, dass es zu einer massiven Löschung kommt
der Dateien am Ziel. Sie können dies mit überschreiben --ignore-errors
.
Die --löschen Die Option kann mit einer der Optionen --delete-WHEN ohne kombiniert werden
Konflikte sowie --löschen-ausgeschlossen. Wenn jedoch keines der --delete-WHEN
Optionen angegeben sind, wählt rsync die aus --delete-during Algorithmus beim Sprechen
auf rsync 3.0.0 oder neuer und die --delete-before Algorithmus beim Gespräch mit einem Älteren
rsync. Siehe auch --delete-delay und --delete-after.
--delete-before
Fordern Sie, dass die Dateilöschungen auf der Empfängerseite vor der Übertragung durchgeführt werden
beginnt. Sehen --löschen (was impliziert ist) für weitere Details zum Löschen von Dateien.
Das Löschen vor der Übertragung ist hilfreich, wenn im Dateisystem nur wenig Speicherplatz vorhanden ist
Das Entfernen überflüssiger Dateien würde dazu beitragen, die Übertragung zu ermöglichen. Wie auch immer, es
führt zu einer Verzögerung vor dem Beginn der Übertragung, und diese Verzögerung kann zu Verzögerungen führen
die Übertragung auf Timeout (falls --Auszeit angegeben wurde). Es erzwingt auch die Verwendung von rsync
der alte, nicht inkrementelle Rekursionsalgorithmus, der rsync zum Scannen aller benötigt
Dateien bei der Übertragung in den Speicher auf einmal (siehe - rekursiv).
--delete-during, --del
Fordern Sie an, dass die Dateilöschungen auf der Empfängerseite inkrementell erfolgen
Die Übertragung erfolgt. Der Löschscan pro Verzeichnis wird direkt vor jedem durchgeführt
Das Verzeichnis wird auf Aktualisierungen überprüft und verhält sich daher effizienter
--delete-before, einschließlich der Löschvorgänge vor jedem verzeichnisspezifischen Filter
Dateien, die aktualisiert werden. Diese Option wurde erstmals in rsync Version 2.6.4 hinzugefügt. Sehen
--löschen (was impliziert ist) für weitere Details zum Löschen von Dateien.
--delete-delay
Fordern Sie an, dass die Dateilöschungen auf der Empfängerseite während der Berechnung berechnet werden
übertragen (wie --delete-during) und wird nach Abschluss der Übertragung entfernt.
Dies ist in Kombination mit nützlich --delay-updates und / oder - verschwommen, und ist mehr
effizienter als die Verwendung --delete-after (kann sich aber anders verhalten, da
--delete-after berechnet die Löschungen in einem separaten Durchgang, nachdem alle Aktualisierungen durchgeführt wurden
Erledigt). Wenn die Anzahl der entfernten Dateien einen internen Puffer übersteigt, wird ein temporärer Puffer erstellt
Auf der Empfängerseite wird eine Datei erstellt, die die Namen enthält (sie wird entfernt, während
geöffnet ist, sodass Sie es während der Übertragung nicht sehen sollten). Wenn die Erstellung des
Wenn die temporäre Datei fehlschlägt, versucht rsync, auf die Verwendung zurückzugreifen --delete-after (was es
kann nicht tun, wenn - rekursiv führt einen inkrementellen Scan durch). Sehen --löschen (welches ist
(impliziert) für weitere Details zum Löschen von Dateien.
--delete-after
Fordern Sie an, dass die Dateilöschungen auf der Empfängerseite nach der Übertragung durchgeführt werden
hat vervollständigt. Dies ist nützlich, wenn Sie neue verzeichnisspezifische Zusammenführungsdateien als senden
Teil der Übertragung sind und Sie möchten, dass ihre Ausschlüsse für die Löschung wirksam werden
Phase der aktuellen Übertragung. Es zwingt rsync auch dazu, das alte zu verwenden,
Nicht-inkrementeller Rekursionsalgorithmus, der rsync benötigt, um alle darin enthaltenen Dateien zu scannen
die Übertragung in den Speicher sofort (siehe - rekursiv). Sehen --löschen (welches ist
(impliziert) für weitere Details zum Löschen von Dateien.
--löschen-ausgeschlossen
Zusätzlich zum Löschen der Dateien auf der Empfängerseite, die sich auf der Senderseite nicht befinden
Auf der anderen Seite weist dies rsync an, auch alle Dateien auf der empfangenden Seite zu löschen
ausgeschlossen (vgl --ausschließen). Eine Möglichkeit zur Erstellung finden Sie im Abschnitt FILTERREGELN
Einzelne Ausschlüsse verhalten sich beim Empfänger auf diese Weise und dienen als Schutzmaßnahme
Dateien aus --löschen-ausgeschlossen. Sehen --löschen (was impliziert ist) für weitere Details zu
Dateilöschung.
--ignore-missing-args
Wenn rsync zum ersten Mal die explizit angeforderten Quelldateien verarbeitet (z
Befehlszeilenargumente oder --Dateien-von Einträge), ist es normalerweise ein Fehler, wenn die
Datei kann nicht gefunden werden. Diese Option unterdrückt diesen Fehler und versucht es nicht
Übertragen Sie die Datei. Dies wirkt sich nicht auf nachfolgende Fehler aufgrund verschwundener Dateien in einer Datei aus
wurde zunächst als vorhanden festgestellt und ist später nicht mehr vorhanden.
--delete-missing-args
Diese Option übernimmt das Verhalten von (dem implizierten) --ignore-missing-args Option einen Schritt
weiter: Jedes fehlende Argument wird zu einer Löschanforderung des entsprechenden
Zieldatei auf der Empfängerseite (sofern vorhanden). Wenn die Zieldatei
ist ein nicht leeres Verzeichnis, es wird nur erfolgreich gelöscht, wenn --force oder
--delete sind wirksam. Ansonsten ist diese Option unabhängig von allen anderen
Art der Löschverarbeitung.
Die fehlenden Quelldateien werden durch spezielle Dateilisteneinträge dargestellt, die angezeigt werden
als „*fehlender“ Eintrag in der --list-only Ausgabe.
--ignore-errors
Tells --löschen um fortzufahren und Dateien zu löschen, auch wenn E/A-Fehler vorliegen.
--Macht
Diese Option weist rsync an, ein nicht leeres Verzeichnis zu löschen, wenn es ersetzt werden soll
durch ein Nicht-Verzeichnis. Dies ist nur relevant, wenn Löschungen nicht aktiv sind (siehe
--löschen für Details).
Hinweis für ältere rsync-Versionen: --Macht Früher war es bei der Verwendung noch erforderlich
--delete-after, und es war früher nicht funktionsfähig, es sei denn, das - rekursiv Option war
auch aktiviert.
--max-delete=ANZAHL
Dadurch wird rsync angewiesen, nicht mehr als NUM Dateien oder Verzeichnisse zu löschen. Wenn diese Grenze
Bei Überschreitung werden alle weiteren Löschvorgänge bis zum Ende der Übertragung übersprungen. Bei
Am Ende gibt rsync eine Warnung aus (einschließlich der Anzahl der übersprungenen Löschungen) und
wird mit dem Fehlercode 25 beendet (sofern nicht auch eine wichtigere Fehlerbedingung vorliegt).
aufgetreten).
Ab Version 3.0.0 können Sie angeben --max-delete=0 vor allem gewarnt werden
überflüssige Dateien im Ziel, ohne sie zu entfernen. Ältere Kunden
interpretierte dies als „unbegrenzt“. Wenn Sie also nicht wissen, um welche Version des Clients es sich handelt,
Sie können das weniger Offensichtliche verwenden --max-delete=-1 als abwärtskompatible Möglichkeit
Geben Sie an, dass keine Löschungen zulässig sind (obwohl wirklich alte Versionen nicht gewarnt haben, wann).
der Grenzwert wurde überschritten).
--max-size=GRÖSSE
Dadurch wird rsync angewiesen, die Übertragung von Dateien zu vermeiden, die größer als angegeben sind
GRÖSSE. An den SIZE-Wert kann eine Zeichenfolge angehängt werden, um einen Größenmultiplikator anzugeben.
und kann ein Bruchwert sein (z. B. „--max-size=1.5m").
Bei dieser Option handelt es sich um eine Übertragungsregel, nicht um einen Ausschluss, sodass sie sich nicht auf die Daten auswirkt
geht in die Dateilisten und hat daher keinen Einfluss auf Löschungen. Es begrenzt nur die
Dateien, deren Übertragung der Empfänger anfordert.
Die Suffixe lauten wie folgt: „K“ (oder „KiB“) ist ein Kibibyte (1024), „M“ (oder „MiB“) ist
ein Mebibyte (1024*1024) und „G“ (oder „GiB“) ist ein Gibibyte (1024*1024*1024). Wenn du
Wenn Sie möchten, dass der Multiplikator 1000 statt 1024 beträgt, verwenden Sie „KB“, „MB“ oder „GB“. (Notiz:
Für alle Werte wird auch Kleinschreibung akzeptiert.) Schließlich, wenn das Suffix auf „entweder“ endet
„+1“ oder „-1“, der Wert wird um ein Byte in die angegebene Richtung verschoben.
Beispiele: --max-size=1.5mb-1 ist 1499999 Bytes und --max-size=2g+1 ist 2147483649
Bytes.
Beachten Sie, dass rsync-Versionen vor 3.1.0 dies nicht zuließen --max-size=0.
--min-size=GRÖSSE
Dadurch wird rsync angewiesen, die Übertragung von Dateien zu vermeiden, die kleiner als angegeben sind
SIZE, was dazu beitragen kann, dass keine kleinen Junk-Dateien übertragen werden. Siehe die --maximale Größe
Option für eine Beschreibung der GRÖSSE und andere Informationen.
Beachten Sie, dass rsync-Versionen vor 3.1.0 dies nicht zuließen --min-size=0.
-B, --block-size=BLOCKSIZE
Dadurch wird die im Delta-Transfer-Algorithmus von rsync verwendete Blockgröße auf einen festen Wert festgelegt
Wert. Die Auswahl erfolgt normalerweise basierend auf der Größe jeder zu aktualisierenden Datei. Sehen
Einzelheiten finden Sie im technischen Bericht.
-e, --rsh=BEFEHL
Mit dieser Option können Sie ein alternatives Remote-Shell-Programm auswählen, für das Sie es verwenden möchten
Kommunikation zwischen den lokalen und Remote-Kopien von rsync. Normalerweise ist rsync
Es ist standardmäßig für die Verwendung von ssh konfiguriert, Sie bevorzugen jedoch möglicherweise die Verwendung von rsh in einem lokalen Netzwerk.
Wenn diese Option mit verwendet wird [user@]host::module/path, dann die Remote-Shell COMMAND
wird verwendet, um einen rsync-Daemon auf dem Remote-Host auszuführen, und alle Daten werden gespeichert
über diese Remote-Shell-Verbindung und nicht über eine direkte Verbindung übertragen
Socket-Verbindung zu einem laufenden rsync-Daemon auf dem Remote-Host. Siehe den Abschnitt
„VERWENDUNG VON RSYNC-DAEMON-FUNKTIONEN ÜBER EINE REMOTE-SHELL-VERBINDUNG“ oben.
Befehlszeilenargumente sind in COMMAND zulässig, sofern COMMAND angezeigt wird
zu rsync als einzelnes Argument. Sie müssen Leerzeichen verwenden (keine Tabulatoren oder andere Leerzeichen).
um den Befehl und die Argumente voneinander zu trennen, können Sie auch ein- und/oder verwenden
Doppelte Anführungszeichen, um Leerzeichen in einem Argument beizubehalten (jedoch keine umgekehrten Schrägstriche). Beachten Sie, dass
Wenn Sie ein einfaches Anführungszeichen innerhalb einer Zeichenfolge in einfachen Anführungszeichen verdoppeln, erhalten Sie ein einfaches Anführungszeichen.
Gleiches gilt für doppelte Anführungszeichen (Sie müssen jedoch darauf achten, welche Anführungszeichen Sie verwenden
Shell analysiert und welche Anführungszeichen rsync analysiert). Einige Beispiele:
-e 'ssh -p 2234'
-e 'ssh -o "ProxyCommand nohup ssh firewall nc -w1 %h %p"'
(Beachten Sie, dass SSH-Benutzer alternativ standortspezifische Verbindungsoptionen anpassen können
ihre .ssh/config-Datei.)
Sie können das Remote-Shell-Programm auch mithilfe der RSYNC_RSH-Umgebung auswählen
Variable, die denselben Wertebereich akzeptiert wie -e.
Siehe auch die --blocking-io Option, die von dieser Option betroffen ist.
--rsync-path=PROGRAMM
Geben Sie hiermit an, welches Programm beim Starten auf dem Remote-Computer ausgeführt werden soll
rsync. Wird oft verwendet, wenn sich rsync nicht im Pfad der Standard-Remote-Shell befindet (z. B
--rsync-path=/usr/local/bin/rsync). Beachten Sie, dass PROGRAM mit Hilfe von a ausgeführt wird
Shell, also kann es sich um jedes Programm, Skript oder jede Befehlssequenz handeln, die Sie ausführen möchten
solange dadurch nicht der von rsync verwendete Standard-Ein- und Standard-Ausgang beschädigt wird
kommunizieren.
Ein kniffliges Beispiel ist das Festlegen eines anderen Standardverzeichnisses auf dem Remote-Computer
zur Verwendung mit dem --relativ Möglichkeit. Zum Beispiel:
rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/
-M, --remote-option=OPTION
Diese Option wird für komplexere Situationen verwendet, in denen Sie bestimmte Effekte wünschen
auf eine Seite der Übertragung beschränkt sein. Zum Beispiel, wenn Sie bestehen möchten
--log-file=DATEI und --fake-super Geben Sie es zum Remote-System wie folgt an:
rsync -av -M --log-file=foo -M--fake-super src/ dest/
Wenn Sie möchten, dass sich eine Option nur auf die lokale Seite einer Übertragung auswirkt
Wenn normalerweise beide Seiten betroffen sind, senden Sie die Negation an die Gegenseite. So was:
rsync -av -x -M--no-x src/ dest/
Seien Sie bei der Verwendung dieser Option vorsichtig, da es möglich ist, eine Option umzuschalten, die rsync verursacht
um eine andere Vorstellung davon zu haben, welche Daten als nächstes über den Socket zu erwarten sind, und das
wird es auf kryptische Weise zum Scheitern bringen.
Beachten Sie, dass es am besten ist, ein separates zu verwenden --remote-option für jede gewünschte Option
passieren. Dies macht Ihre Nutzung mit dem kompatibel --protect-args Möglichkeit. Wenn das
Wenn die Option deaktiviert ist, werden alle Leerzeichen in Ihren Remote-Optionen von der Remote-Shell geteilt
es sei denn, Sie ergreifen Maßnahmen, um sie zu schützen.
Bei einer lokalen Übertragung ist die „lokale“ Seite der Absender und die „entfernte“ Seite
Seite ist der Empfänger.
Beachten Sie, dass einige Versionen der Optionsparsing-Bibliothek popt einen Fehler enthalten
verhindert, dass Sie neben einer kurzen Option ein angrenzendes Argument mit einem Gleichheitszeichen verwenden
Buchstabe (z. B. -M--log-file=/tmp/foo. Wenn dieser Fehler Ihre Version von popt betrifft, können Sie
kann die Version von popt verwenden, die in rsync enthalten ist.
-VS, --cvs-exclude
Dies ist eine nützliche Abkürzung zum Ausschließen einer Vielzahl von Dateien, die Sie häufig verwenden
Ich möchte nicht zwischen Systemen übertragen. Es verwendet einen ähnlichen Algorithmus wie CVS
Bestimmen Sie, ob eine Datei ignoriert werden soll.
Die Ausschlussliste wird initialisiert, um die folgenden Elemente (diese anfänglichen Elemente) auszuschließen
sind als verderblich markiert – siehe Abschnitt FILTERREGELN):
RCS SCCS CVS CVS.adm RCSLOG cvslog.* Tags TAGS .make.state .nse_depinfo *~
#* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj
*.so *.exe *.Z *.elc *.ln core .svn/ .git/ .hg/ .bzr/
Anschließend werden die in einem $HOME/.cvsignore aufgeführten Dateien zur Liste und allen aufgelisteten Dateien hinzugefügt
in der Umgebungsvariablen CVSIGNORE (alle cvsignore-Namen werden durch getrennt).
Leerzeichen).
Schließlich wird jede Datei ignoriert, wenn sie sich im selben Verzeichnis wie eine .cvsignore-Datei befindet
und entspricht einem der darin aufgeführten Muster. Im Gegensatz zum Filter/Ausschluss von rsync
Dateien werden diese Muster in Leerzeichen aufgeteilt. Siehe die cvs(1) Handbuch für mehr
Informationen.
Wenn Sie kombinieren -C mit Ihren eigenen --Filter Regeln sollten Sie beachten, dass diese CVS
Ausschlüsse werden am Ende Ihrer eigenen Regeln angehängt, unabhängig davon, wo sie sich befinden -C wurde
in der Befehlszeile platziert. Dadurch haben sie eine niedrigere Priorität als alle Regeln, die Sie festlegen
explizit angegeben. Wenn Sie steuern möchten, wo diese CVS-Ausschlüsse eingefügt werden
in Ihre Filterregeln integrieren, sollten Sie das weglassen -C als Befehlszeilenoption und verwenden Sie a
Kombination von --filter=:C und --filter=-C (entweder auf Ihrer Befehlszeile oder per
Fügen Sie die Regeln „:C“ und „-C“ zusammen mit Ihren anderen Regeln in eine Filterdatei ein. Der
Die erste Option aktiviert die verzeichnisspezifische Suche nach der .cvsignore-Datei. Der
Die zweite Option führt einen einmaligen Import der oben genannten CVS-Ausschlüsse durch.
-F, --filter=REGEL
Mit dieser Option können Sie Regeln hinzufügen, um bestimmte Dateien selektiv von der Datei auszuschließen
Liste der zu übertragenden Dateien. Dies ist am nützlichsten in Kombination mit a
rekursive Übertragung.
Sie können beliebig viele verwenden --Filter Optionen auf der Befehlszeile, wie Sie möchten
die Liste der auszuschließenden Dateien. Wenn der Filter Leerzeichen enthält, müssen Sie unbedingt Anführungszeichen angeben
es so, dass die Shell die Regel als einzelnes Argument an rsync übergibt. Der Text unten
erwähnt auch, dass Sie einen Unterstrich verwenden können, um das Leerzeichen zu ersetzen, das a trennt
Regel aus ihrem Argument.
Ausführliche Informationen zu dieser Option finden Sie im Abschnitt FILTERREGELN.
-F Die -F Option ist eine Abkürzung für die Addition von zwei --Filter Regeln zu Ihrem Befehl. Der
Bei der ersten Verwendung handelt es sich um eine Abkürzung für diese Regel:
--filter='dir-merge /.rsync-filter'
Dadurch wird rsync angewiesen, nach verzeichnisspezifischen .rsync-Filter-Dateien zu suchen
durch die Hierarchie gestreut und verwenden ihre Regeln, um die Dateien in der zu filtern
überweisen. Wenn -F wiederholt wird, ist es eine Abkürzung für diese Regel:
--filter='exclude .rsync-filter'
Dadurch werden die .rsync-filter-Dateien selbst aus der Übertragung herausgefiltert.
Ausführliche Informationen zur Funktionsweise dieser Optionen finden Sie im Abschnitt FILTERREGELN.
--exclude=MUSTER
Diese Option ist eine vereinfachte Form von --Filter Option, die standardmäßig ein Ausschluss ist
Regel und erlaubt nicht die vollständige Regelparsing-Syntax normaler Filterregeln.
Ausführliche Informationen zu dieser Option finden Sie im Abschnitt FILTERREGELN.
--exclude-from=DATEI
Diese Option bezieht sich auf die --ausschließen Option, aber es gibt eine DATEI an, die
enthält Ausschlussmuster (eines pro Zeile). Leerzeilen in der Datei und Zeilen
beginnen mit ';' oder '#' werden ignoriert. Wenn FILE is -, aus der Liste wird gelesen
Standardeingabe.
--include=MUSTER
Diese Option ist eine vereinfachte Form von --Filter Option, die standardmäßig ein Include ist
Regel und erlaubt nicht die vollständige Regelparsing-Syntax normaler Filterregeln.
Ausführliche Informationen zu dieser Option finden Sie im Abschnitt FILTERREGELN.
--include-from=DATEI
Diese Option bezieht sich auf die --enthalten Option, aber es gibt eine DATEI an, die
enthält Include-Muster (eines pro Zeile). Leerzeilen in der Datei und Zeilen
beginnen mit ';' oder '#' werden ignoriert. Wenn FILE is -, aus der Liste wird gelesen
Standardeingabe.
--files-from=DATEI
Mit dieser Option können Sie die genaue Liste der zu übertragenden Dateien angeben (wie
aus der angegebenen DATEI lesen oder - für Standardeingabe). Es optimiert auch die Standardeinstellung
Verhalten von rsync, um die Übertragung nur der angegebenen Dateien und Verzeichnisse zu ermöglichen
einfacher:
o Die --relativ (-R)-Option impliziert, die die Pfadinformationen beibehält
das für jedes Element in der Datei angegeben ist (verwenden Sie --no-relative or --noch if
Sie möchten das ausschalten).
o Die --dir (-d)-Option impliziert, die die angegebenen Verzeichnisse erstellt
in der Liste am Ziel, anstatt sie lautstark zu überspringen (verwenden Sie
--no-dirs or --nicken wenn Sie das ausschalten möchten).
o Die --Archiv (-a) Das Verhalten der Option impliziert nicht - rekursiv (-r), so
Geben Sie es explizit an, wenn Sie es möchten.
o Diese Nebenwirkungen ändern den Standardstatus von rsync, also die Position des
--Dateien-von Die Option in der Befehlszeile hat keinen Einfluss darauf, wie andere Optionen funktionieren
werden analysiert (z -a funktioniert vorher oder nachher gleich --Dateien-von, Wie tut
--noch und alle anderen Optionen).
Die aus der DATEI gelesenen Dateinamen sind alle relativ zum Quellverzeichnis – beliebig
Führende Schrägstriche werden entfernt und es dürfen keine „..“-Referenzen nach oben gehen
das Quellverzeichnis. Nehmen Sie zum Beispiel diesen Befehl:
rsync -a --files-from=/tmp/foo / usr remote:/backup
Wenn /tmp/foo die Zeichenfolge „bin“ (oder sogar „/Behälter"), das / usr / bin Verzeichnis wird
als /backup/bin auf dem Remote-Host erstellt werden. Wenn es „bin/“ enthält (beachten Sie die
(abschließender Schrägstrich) wird auch der unmittelbare Inhalt des Verzeichnisses gesendet
(Ohne dass dies explizit in der Datei erwähnt werden muss – dies begann in Version
2.6.4). In beiden Fällen, wenn die -r Option aktiviert war, wird die gesamte Hierarchie dieses Verzeichnisses angezeigt
würde ebenfalls übertragen werden (bedenken Sie, dass -r muss explizit angegeben werden
mit --Dateien-von, da es nicht impliziert ist durch -a). Beachten Sie auch, dass die Wirkung von
die (standardmäßig aktiviert) --relativ Option besteht darin, nur die Pfadinformationen zu duplizieren
wird aus der Datei gelesen – es erzwingt nicht die Duplizierung des Quellspezifikationspfads
(/ usr in diesem Fall).
Darüber hinaus ist die --Dateien-von Die Datei kann anstelle von vom Remote-Host gelesen werden
lokaler Host, wenn Sie vor der Datei ein „host:“ angeben (der Host muss mit einem übereinstimmen).
Ende der Übertragung). Als Abkürzung können Sie einfach ein Präfix von „:“ angeben, um zu bedeuten
„Verwenden Sie das entfernte Ende der Übertragung“. Zum Beispiel:
rsync -a --files-from=:/path/file-list src:/ /tmp/copy
Dadurch würden alle in der Datei /path/file-list angegebenen Dateien kopiert
befindet sich auf dem Remote-Host „src“.
Besitzt das --iconv und --protect-args Optionen werden angegeben und die --Dateien-von
Wenn Dateinamen von einem Host an einen anderen gesendet werden, werden die Dateinamen übersetzt
vom Zeichensatz des sendenden Hosts zum Zeichensatz des empfangenden Hosts.
HINWEIS: Das Sortieren der Dateiliste in der Eingabe „--files-from“ trägt dazu bei, dass rsync besser wird
effizient, da ein erneuter Besuch der gemeinsam genutzten Pfadelemente vermieden wird
angrenzende Einträge. Wenn die Eingabe nicht sortiert ist, werden einige Pfadelemente (implizit) angezeigt
Verzeichnisse) werden möglicherweise mehrmals gescannt, und rsync wird dies schließlich tun
Entfernen Sie die Duplikate, nachdem sie in Dateilistenelemente umgewandelt wurden.
-0, --von0
Dies teilt rsync mit, dass die Regeln/Dateinamen, die es aus einer Datei liest, durch a beendet werden
Nullzeichen ('\0'), kein NL, CR oder CR+LF. Das wirkt sich aus --ausgeschlossen von,
--einschließen-von, --Dateien-vonund alle in a angegebenen zusammengeführten Dateien --Filter Regel.
Es hat keinen Einfluss --cvs-exclude (da alle aus einer .cvsignore-Datei gelesenen Namen sind
Aufteilung nach Leerzeichen).
-S, --protect-args
Diese Option sendet alle Dateinamen und die meisten Optionen ohne
Erlauben Sie der Remote-Shell, sie zu interpretieren. Dies bedeutet, dass Räume nicht geteilt werden
in Namen und alle Sonderzeichen, die keine Platzhalterzeichen sind, werden nicht übersetzt (z. B. ~, $,
;, &, usw.). Platzhalter werden auf dem Remote-Host durch rsync erweitert (anstelle von
Shell macht es).
Wenn Sie diese Option mit verwenden --iconv, die Argumente, die sich auf die Remote-Seite beziehen, werden ebenfalls verwendet
vom lokalen in den entfernten Zeichensatz übersetzt werden. Die Übersetzung geschieht
bevor Platzhalter erweitert werden. Siehe auch die --Dateien-von .
Sie können diese Option auch über die Umgebungsvariable RSYNC_PROTECT_ARGS steuern.
Wenn diese Variable einen Wert ungleich Null hat, ist diese Option standardmäßig aktiviert.
andernfalls ist es standardmäßig deaktiviert. Jeder Status wird manuell überschrieben
angegebene positive oder negative Version dieser Option (beachten Sie, dass --nein-s und
--no-protect-args sind die negativen Versionen). Da diese Option die erste war
eingeführt in 3.0.0, müssen Sie sicherstellen, dass es deaktiviert ist, falls dies jemals erforderlich sein sollte
Interagieren Sie mit einem Remote-Rsync, der älter ist.
Rsync kann auch (zur Erstellungszeit) so konfiguriert werden, dass diese Option standardmäßig aktiviert ist
(with wird sowohl von der Umgebung als auch von der Befehlszeile überschrieben). Diese Option
wird irgendwann zu einem noch unbestimmten Zeitpunkt zu einer neuen Standardeinstellung werden
die Zukunft.
-T, --temp-dir=VERZ
Diese Option weist rsync an, DIR beim Erstellen als Arbeitsverzeichnis zu verwenden
temporäre Kopien der auf der Empfängerseite übertragenen Dateien. Der Standard
Das Verhalten besteht darin, jede temporäre Datei im selben Verzeichnis wie die zugehörige Datei zu erstellen
Zieldatei. Ab rsync 3.1.1 sind die temporären Dateinamen innerhalb der
Dem angegebenen DIR wird kein zusätzlicher Punkt vorangestellt (obwohl sie weiterhin einen haben).
zufälliges Suffix hinzugefügt).
Diese Option wird am häufigsten verwendet, wenn die empfangende Festplattenpartition keine hat
Genügend freier Speicherplatz, um eine Kopie der größten Datei in der Übertragung aufzunehmen. In diesem Fall
(dh wenn sich das Scratch-Verzeichnis auf einer anderen Festplattenpartition befindet), wird dies bei rsync nicht der Fall sein
Sie können jede empfangene temporäre Datei über die zugehörige umbenennen
Zieldatei, sondern muss sie stattdessen an die richtige Stelle kopieren. Rsync erledigt dies durch Kopieren
die Datei über der Zieldatei, was bedeutet, dass das Ziel
Die Datei enthält während dieses Kopiervorgangs abgeschnittene Daten. Wenn dies nicht so geschehen wäre
(Selbst wenn die Zieldatei zuerst entfernt wurde, werden die Daten lokal in eine kopiert
temporäre Datei im Zielverzeichnis ablegen und dann an Ort und Stelle umbenennen).
Es kann sein, dass die alte Datei weiterhin Speicherplatz belegt (falls jemand sie hatte).
geöffnet), sodass möglicherweise nicht genügend Platz für die neue Version auf der Festplatte vorhanden ist
möglichst in einem Ansatz.
Wenn Sie diese Option aus anderen Gründen als einem Mangel an Speicherplatz verwenden, können Sie
Vielleicht möchten Sie es mit dem kombinieren --delay-updates Option, die dafür sorgt, dass alle
Kopierte Dateien werden in Unterverzeichnissen in der Zielhierarchie abgelegt und warten auf den
Ende der Übertragung. Wenn Sie nicht genug Platz haben, um alle ankommenden Dateien zu duplizieren
Dateien auf der Zielpartition, eine weitere Möglichkeit, rsync mitzuteilen, dass dies nicht der Fall ist
Übermäßige Bedenken hinsichtlich des Speicherplatzes besteht darin, die zu verwenden --partial-dir Option mit a
relativer Pfad; weil dies rsync mitteilt, dass es in Ordnung ist, eine Kopie von a zu speichern
Einzelne Datei in einem Unterverzeichnis in der Zielhierarchie, rsync verwendet die
Teilverzeichnis als Staging-Bereich verwenden, um die kopierte Datei zu übertragen und sie dann umzubenennen
von dort aus an Ort und Stelle. (Angabe von a --partial-dir mit einem absoluten Pfad nicht
habe diese Nebenwirkung.)
-Und, - verschwommen
Diese Option teilt rsync mit, dass es für jedes Ziel nach einer Basisdatei suchen soll
Datei, die fehlt. Der aktuelle Algorithmus sucht im selben Verzeichnis wie der
Zieldatei für entweder eine Datei mit identischer Größe und Änderungszeit, oder
eine Datei mit ähnlichem Namen. Wenn es gefunden wird, verwendet rsync die Fuzzy-Basisdatei, um zu versuchen, die Geschwindigkeit zu erhöhen
den Transfer hochfahren.
Bei Wiederholung der Option wird der Fuzzy-Scan auch bei jedem Matching durchgeführt
alternative Zielverzeichnisse, die über angegeben werden --compare-dest,
--copy-dest oder --link-dest.
Beachten Sie, dass die Verwendung der --löschen Mit dieser Option können potenzielle Fuzzy-Matches entfernt werden
Dateien, also entweder verwenden --delete-after oder geben Sie bei Bedarf einige Dateinamenausschlüsse an
um dies zu verhindern.
--compare-dest=DIR
Diese Option weist rsync zur Verwendung an DIR auf dem Zielrechner als Zusatz
Hierarchie, um Zieldateien mit der Durchführung von Übertragungen zu vergleichen (sofern die Dateien vorhanden sind).
fehlt im Zielverzeichnis). Wenn eine Datei gefunden wird DIR das ist identisch
In die Datei des Absenders wird die Datei NICHT an das Ziel übertragen
Verzeichnis. Dies ist nützlich, um eine spärliche Sicherung nur der Dateien zu erstellen, die vorhanden sind
von einem früheren Backup geändert. Diese Option wird normalerweise zum Kopieren in eine verwendet
leeres (oder neu erstelltes) Verzeichnis.
Ab Version 2.6.4 mehrere --compare-dest Verzeichnisse können bereitgestellt werden,
Dadurch durchsucht rsync die Liste in der angegebenen Reihenfolge nach einem genauen Ergebnis
übereinstimmen. Wird eine Übereinstimmung gefunden, die sich nur in den Attributen unterscheidet, wird eine lokale Kopie erstellt
und die Attribute aktualisiert. Wenn keine Übereinstimmung gefunden wird, wird eine Basisdatei aus einer der
DIRs werden ausgewählt, um zu versuchen, die Übertragung zu beschleunigen.
If DIR ist ein relativer Pfad, er ist relativ zum Zielverzeichnis. Siehe auch
--copy-dest und --link-dest.
HINWEIS: Ab Version 3.1.0 entfernt rsync eine Datei aus einer nicht leeren Datei
Zielhierarchie, wenn in einem der Vergleichsziele eine genaue Übereinstimmung gefunden wird
Hierarchien (wodurch das Endergebnis besser mit einer neuen Kopie übereinstimmt).
--copy-dest=DIR
Diese Option verhält sich wie folgt --compare-dest, aber rsync kopiert auch unveränderte Dateien
gefunden in DIR mithilfe einer lokalen Kopie in das Zielverzeichnis kopieren. Dies ist nützlich für
Übertragungen an ein neues Ziel durchführen, während vorhandene Dateien intakt bleiben, und dann
Führen Sie einen Flash-Cutover durch, wenn alle Dateien erfolgreich übertragen wurden.
Mehrere --copy-dest Es können Verzeichnisse bereitgestellt werden, die eine Suche durch rsync veranlassen
die Liste in der für eine unveränderte Datei angegebenen Reihenfolge. Wenn keine Übereinstimmung gefunden wird, a
Basisdatei von einem der DIRs werden ausgewählt, um zu versuchen, die Übertragung zu beschleunigen.
If DIR ist ein relativer Pfad, er ist relativ zum Zielverzeichnis. Siehe auch
--compare-dest und --link-dest.
--link-dest=DIR
Diese Option verhält sich wie folgt --copy-dest, aber unveränderte Dateien sind fest verlinkt DIR
in das Zielverzeichnis. Die Dateien müssen in allen erhaltenen Dateien identisch sein
Attribute (z. B. Berechtigungen, möglicherweise Eigentumsrechte), damit die Dateien vorhanden sein können
miteinander verbunden. Ein Beispiel:
rsync -av --link-dest=$PWD/prior_dir host:src_dir/ new_dir/
Wenn Dateien nicht verlinkt sind, überprüfen Sie ihre Attribute noch einmal. Überprüfen Sie auch, ob welche vorhanden sind
Attribute werden außerhalb der Kontrolle von rsync erzwungen, z. B. eine Mount-Option
überträgt Root auf einen einzelnen Benutzer oder stellt ein Wechsellaufwerk mit generischem Besitz bereit
(z. B. die Option „Besitz dieses Volumes ignorieren“ von OS X).
Ab Version 2.6.4 mehrere --link-dest Es können Verzeichnisse bereitgestellt werden, die
bewirkt, dass rsync die Liste in der angegebenen Reihenfolge nach einer genauen Übereinstimmung durchsucht. Wenn
Wird eine Übereinstimmung gefunden, die sich nur in den Attributen unterscheidet, wird eine lokale Kopie erstellt und die
Attribute aktualisiert. Wenn keine Übereinstimmung gefunden wird, wird eine Basisdatei aus einer der DIRs
wird ausgewählt, um zu versuchen, die Übertragung zu beschleunigen.
Diese Option funktioniert am besten beim Kopieren in eine leere Zielhierarchie, z
Bei vorhandenen Dateien werden möglicherweise die Attribute angepasst, was Auswirkungen auf alternative Dateien haben kann
Zieldateien über Hardlinks. Auch die Auflistung der Änderungen kann etwas langwierig sein
durcheinander. Beachten Sie, dass es vor Version 3.1.0 eine exakte Übereinstimmung mit alternativen Verzeichnissen gab
würde niemals gefunden (oder mit dem Ziel verknüpft) werden, wenn eine Zieldatei vorhanden wäre
ist bereits vorhanden.
Beachten Sie Folgendes: Wenn Sie diese Option mit kombinieren --ignore-times, rsync wird keine verknüpfen
Dateien zusammen, da nur identische Dateien miteinander verknüpft werden
Übertragung der Datei, niemals als zusätzliche Prüfung nach der Aktualisierung der Datei.
If DIR ist ein relativer Pfad, er ist relativ zum Zielverzeichnis. Siehe auch
--compare-dest und --copy-dest.
Beachten Sie, dass rsync-Versionen vor 2.6.1 einen Fehler aufwiesen, der dies verhindern konnte --link-dest
für einen Nicht-Superuser nicht richtig funktionieren, wenn -o angegeben (oder impliziert) wurde
-a). Sie können diesen Fehler umgehen, indem Sie Folgendes vermeiden -o Option beim Senden an einen alten
rsync.
-z, --Kompresse
Mit dieser Option komprimiert rsync die Dateidaten, während sie an das Ziel gesendet werden
Maschine, die die Menge der übertragenen Daten reduziert – etwas, das ist
nützlich bei einer langsamen Verbindung.
Beachten Sie, dass mit dieser Option in der Regel bessere Komprimierungsverhältnisse erreicht werden als möglich
Dies wird durch die Verwendung einer komprimierenden Remote-Shell oder eines komprimierenden Transports erreicht
nutzt die impliziten Informationen in den passenden Datenblöcken aus
nicht explizit über die Verbindung gesendet. Diese Matching-Data-Komprimierung erfolgt bei a
Die CPU-Kosten sind jedoch höher und können durch Wiederholen des Vorgangs deaktiviert werden -z Option, aber nur wenn
beide Seiten sind mindestens Version 3.1.1.
Beachten Sie Folgendes: Wenn Ihre Version von rsync mit einer externen zlib kompiliert wurde (statt
die zlib, die mit rsync geliefert wird), dann wird der alte Stil nicht unterstützt
Komprimierung, nur die Komprimierung im neuen Stil (wiederholte Option). In Zukunft dies
Die Komprimierung im neuen Stil wird wahrscheinlich zum Standard werden.
Der Client rsync fordert über den Server eine neue Komprimierung an
--new-compress Wenn Sie also sehen, dass diese Option abgelehnt wurde, bedeutet dies, dass der Server
ist nicht neu genug, um unterstützt zu werden -zz. Rsync akzeptiert auch die --old-komprimieren Option für
ein zukünftiger Zeitpunkt, an dem die Komprimierung im neuen Stil zum Standard wird.
Weitere Informationen im --skip-compress Option für die Standardliste der Dateisuffixe, die nicht verwendet werden
komprimiert werden.
--compress-level=NUM
Legen Sie explizit die zu verwendende Komprimierungsstufe fest (siehe --Kompresse), anstatt es zuzulassen
Standard. Wenn NUM ungleich Null ist, ist die --Kompresse Option ist impliziert.
--skip-compress=LISTE
Überschreiben Sie die Liste der Dateisuffixe, die nicht komprimiert werden. Der LISTE sollte sein
ein oder mehrere Dateisuffixe (ohne Punkt), getrennt durch Schrägstriche (/).
Sie können eine leere Zeichenfolge angeben, um anzugeben, dass keine Datei übersprungen werden soll.
Es wird ein einfacher Zeichenklassenabgleich unterstützt: Jeder muss aus einer Liste von bestehen
Buchstaben innerhalb der eckigen Klammern (z. B. keine speziellen Klassen wie „[:alpha:]“,
werden unterstützt und „-“ hat keine besondere Bedeutung).
Die Zeichen Sternchen (*) und Fragezeichen (?) haben keine besondere Bedeutung.
Hier ist ein Beispiel, das 6 zu überspringende Suffixe angibt (da eine der 1 Regeln zutrifft).
2 Suffixe):
--skip-compress=gz/jpg/mp[34]/7z/bz2
Die Standardliste der Suffixe, die nicht komprimiert werden, ist (in dieser Version).
von rsync):
7z As avi bz2 deb gpg gz iso jpeg jpg lz lzma lzo mov mp3 mp4 ogg png rar rpm rzip
tbz tgz TLZ txz xz z Reißverschluss
Diese Liste wird durch Ihre ersetzt --skip-compress Liste in allen außer einer Situation: a
Wenn Sie von einem Daemon kopieren, fügt rsync Ihre übersprungenen Suffixe zu seiner Liste hinzu
nichtkomprimierende Dateien (und die Liste ist möglicherweise auf einen anderen Standardwert konfiguriert).
--numerische-ids
Mit dieser Option überträgt rsync numerische Gruppen- und Benutzer-IDs, anstatt sie zu verwenden
Benutzer- und Gruppennamen und deren Zuordnung an beiden Enden.
Standardmäßig verwendet rsync den Benutzernamen und den Gruppennamen, um den Besitz zu bestimmen
Dateien geben. Die spezielle UID 0 und die spezielle Gruppe 0 werden niemals über zugeordnet
Benutzer-/Gruppennamen, auch wenn die --numerische-ids Option ist nicht angegeben.
Wenn ein Benutzer oder eine Gruppe keinen Namen auf dem Quellsystem hat oder keine Übereinstimmung auf dem hat
Zielsystem, dann wird stattdessen die numerische ID aus dem Quellsystem verwendet.
Siehe auch die Kommentare zur Einstellung „use chroot“ in der Manpage rsyncd.conf für
Informationen darüber, wie sich die Chroot-Einstellung auf die Fähigkeit von rsync auswirkt, die Namen nachzuschlagen
der Benutzer und Gruppen und was Sie dagegen tun können.
--usermap=STRING, --groupmap=STRING
Mit diesen Optionen können Sie Benutzer und Gruppen angeben, die anderen zugeordnet werden sollen
Werte durch die Empfangsseite. Der STRING ist einer oder mehrere AB:TO Wertepaare
durch Kommata abgetrennt. Irgendeine Übereinstimmung AB Der Wert des Absenders wird durch a ersetzt TO
Wert vom Empfänger. Sie können Benutzernamen oder Benutzer-IDs für angeben AB und TO
Werte und die AB Der Wert kann auch eine Platzhalterzeichenfolge sein, die abgeglichen wird
gegen die Namen des Absenders (Platzhalter stimmen NICHT mit ID-Nummern überein, siehe jedoch
unten erfahren Sie, warum ein „*“ mit allem übereinstimmt). Sie können stattdessen einen ID-Bereich angeben
Zahlen über einen umfassenden Bereich: LOW-HIGH. Zum Beispiel:
--usermap=0-99:nobody,wayne:admin,*:normal --groupmap=usr:1,1:usr
Die erste Übereinstimmung in der Liste wird verwendet. Sie sollten alle Ihre angeben
Benutzerzuordnungen mit einem einzigen --usermap Option und/oder alle Ihre Gruppenzuordnungen verwenden
ein einziger --groupmap .
Beachten Sie, dass der Absendername für den 0-Benutzer und die Gruppe nicht an den übermittelt wird
Empfänger, daher sollten Sie diese Werte entweder mit einer 0 abgleichen oder die Namen in verwenden
Wirkung auf der Empfangsseite (typischerweise „root“). Alle anderen AB Namen stimmen mit denen überein
auf der Senderseite im Einsatz. Alle TO Die Namen stimmen mit denen auf der Empfängerseite überein.
Alle IDs, die auf der Senderseite keinen Namen haben, werden als leer behandelt
Namen zum Zwecke der Zuordnung. Dadurch können sie über ein „*“ oder abgeglichen werden
mit einem leeren Namen. Zum Beispiel:
--usermap=:nobody --groupmap=*:nobody
Wenn das --numerische-ids Wird die Option verwendet, sendet der Absender keine Namen, also alle
Die IDs werden so behandelt, als hätten sie einen leeren Namen. Das bedeutet, dass Sie es tun müssen
Geben Sie numerisch an AB Werte, wenn Sie diese namenlosen IDs unterschiedlichen zuordnen möchten
Werte.
Bei der --usermap Option, irgendeine Wirkung zu haben, die -o (--Eigentümer)-Option muss verwendet werden
(oder implizit) und der Empfänger muss als Superuser ausgeführt werden (siehe auch
die --fake-super Möglichkeit). Für die --groupmap Option, irgendeine Wirkung zu haben, die -g
(--Gruppen)-Option muss verwendet (oder impliziert) werden, und der Empfänger muss über diese Option verfügen
Berechtigungen zum Festlegen dieser Gruppe.
--chown=BENUTZER:GRUPPE
Diese Option erzwingt, dass alle Dateien dem USER mit der Gruppe GROUP gehören. Das ist ein
einfachere Schnittstelle als die Verwendung --usermap und --groupmap direkt, aber es ist
Diese Optionen werden intern implementiert, sodass Sie sie nicht mischen können. Wenn entweder die
USER oder GROUP ist leer, es erfolgt keine Zuordnung für den ausgelassenen Benutzer/die ausgelassene Gruppe. Wenn GRUPPE
leer ist, kann der abschließende Doppelpunkt weggelassen werden, wenn USER jedoch leer ist, ein führender Doppelpunkt
muss versorgt werden.
Wenn Sie „--chown=foo:bar“ angeben, entspricht dies genau der Angabe
„--usermap=*:foo --groupmap=*:bar“, nur einfacher.
--timeout=TIMEOUT
Mit dieser Option können Sie ein maximales E/A-Timeout in Sekunden festlegen. Wenn keine Daten vorhanden sind
für die angegebene Zeit übertragen, dann wird rsync beendet. Der Standardwert ist 0
bedeutet keine Zeitüberschreitung.
--contimeout
Mit dieser Option können Sie die Zeitspanne festlegen, die rsync auf seine Antwort warten soll
Die Verbindung zu einem Rsync-Daemon ist erfolgreich. Wenn das Timeout erreicht ist, wird rsync beendet
mit einem Fehler.
--die Anschrift
Standardmäßig bindet sich rsync an die Wildcard-Adresse, wenn eine Verbindung zu einem rsync hergestellt wird
Daemon. Der --die Anschrift Mit der Option können Sie eine bestimmte IP-Adresse angeben (bzw
Hostname), an den gebunden werden soll. Siehe auch diese Option im --dämon Modus Abschnitt.
--port=PORT
Dies gibt eine alternative TCP-Portnummer an, die anstelle der Standardnummer 873 verwendet werden soll.
Dies ist nur erforderlich, wenn Sie für die Verbindung die Doppelpunktsyntax (::) verwenden
ein rsync-Daemon (da die URL-Syntax eine Möglichkeit bietet, den Port als Teil von anzugeben
die URL). Siehe auch diese Option im --dämon Modus Abschnitt.
--sockopts
Diese Option kann Leuten, die ihre Systeme gerne darauf abstimmen, endlosen Spaß bereiten
das höchste Maß. Sie können alle Arten von Socket-Optionen festlegen, die Übertragungen durchführen können
schneller (oder langsamer!). Weitere Informationen finden Sie in der Manpage für den Systemaufruf „setsockopt()“.
auf einige der Optionen, die Sie möglicherweise einstellen können. Standardmäßig keine speziellen Socket-Optionen
eingestellt sind. Dies betrifft nur direkte Socket-Verbindungen zu einem Remote-rsync-Daemon.
Diese Option gibt es auch im --dämon Modus Abschnitt.
--blocking-io
Dadurch wird rsync angewiesen, beim Starten eines Remote-Shell-Transports blockierende E/A zu verwenden. Wenn
die Remote-Shell ist entweder rsh oder remsh, rsync verwendet standardmäßig blockierende E/A,
andernfalls wird standardmäßig nicht blockierende E/A verwendet. (Beachten Sie, dass SSH bevorzugt
nicht blockierende E/A.)
--outbuf=MODUS
Dadurch wird der Ausgabepufferungsmodus festgelegt. Der Modus kann „None“ (auch „Unbuffered“), „Line“ oder „Line“ sein.
oder Blockieren (auch bekannt als „Voll“). Sie können für den Modus nur einen einzigen Buchstaben angeben.
und verwenden Sie Groß- oder Kleinschreibung.
Der Hauptzweck dieser Option besteht darin, die vollständige Pufferung in eine Zeilenpufferung zu ändern, wenn
Die Ausgabe von rsync erfolgt in eine Datei oder Pipe.
-ich, --itemize-changes
Fordert eine einfache detaillierte Liste der Änderungen an, die an jeder Datei vorgenommen werden.
einschließlich Attributänderungen. Das ist genau das Gleiche wie spezifizieren
--out-format='%i %n%L'. Wenn Sie die Option wiederholen, werden auch unveränderte Dateien angezeigt
Ausgabe, aber nur, wenn der empfangende rsync mindestens Version 2.6.7 hat (Sie können verwenden -vv
mit älteren Versionen von rsync, aber das aktiviert auch die Ausgabe anderer ausführlicher
Mitteilungen).
Der „%i“-Escape hat eine kryptische Ausgabe, die 11 Buchstaben lang ist. Das allgemeine Format
ist wie die Zeichenfolge YXcstpoguax, Wobei Y wird durch die Art der Aktualisierung ersetzt
erledigt, X wird durch den Dateityp ersetzt und die anderen Buchstaben stehen für Attribute
die möglicherweise ausgegeben werden, wenn sie geändert werden.
Die Update-Typen, die die ersetzen Y sind wie folgt:
die a < bedeutet, dass eine Datei an den Remote-Host übertragen (gesendet) wird.
die a > bedeutet, dass eine Datei auf den lokalen Host übertragen (empfangen) wird.
die a c bedeutet, dass für das Element eine lokale Änderung/Erstellung stattfindet (z. B
das Erstellen eines Verzeichnisses oder das Ändern eines Symlinks usw.).
die a h bedeutet, dass das Element ein fester Link zu einem anderen Element ist (erfordert
--hard-links).
die a . bedeutet, dass das Element nicht aktualisiert wird (obwohl dies der Fall sein könnte).
Attribute, die geändert werden).
die a * bedeutet, dass der Rest des Einzelausgabebereichs eine Nachricht enthält (z. B
„Löschen“).
Die Dateitypen, die die ersetzen X sind: f für eine Datei, a d für ein Verzeichnis, an L für
ein symbolischer Link, a D für ein Gerät und a S für eine spezielle Datei (z. B. benannte Sockets und
fifos).
Die anderen Buchstaben in der obigen Zeichenfolge sind die tatsächlichen Buchstaben, die ausgegeben werden, wenn
das zugehörige Attribut für das Element wird aktualisiert oder ein „.“ für keine Veränderung.
Drei Ausnahmen hiervon sind: (1) Ein neu erstelltes Element ersetzt jeden Buchstaben durch ein
„+“, (2) ein identisches Element ersetzt die Punkte durch Leerzeichen und (3) ein unbekanntes Element
Das Attribut ersetzt jeden Buchstaben durch ein „?“ (Dies kann passieren, wenn man mit einem älteren Menschen spricht
rsync).
Das jedem Buchstaben zugeordnete Attribut lautet wie folgt:
die a c bedeutet entweder, dass eine reguläre Datei eine andere Prüfsumme hat (erfordert
--Prüfsumme) oder dass ein Symlink, ein Gerät oder eine spezielle Datei einen geänderten Wert hat.
Beachten Sie, dass diese Änderung zutrifft, wenn Sie Dateien an einen Rsync vor 3.0.1 senden
Das Flag ist nur für reguläre Dateien mit unterschiedlichen Prüfsummen vorhanden.
die a s bedeutet, dass die Größe einer regulären Datei unterschiedlich ist und von der aktualisiert wird
Datei Übertragung.
die a t bedeutet, dass die Änderungszeit unterschiedlich ist und auf die aktualisiert wird
Wert des Absenders (erfordert --mal). Ein alternativer Wert von T bedeutet, dass die
Die Änderungszeit wird auf die Übertragungszeit gesetzt, was geschieht, wenn a
file/symlink/device wird ohne aktualisiert --mal und wenn ein Symlink geändert wird
und der Receiver kann seine Uhrzeit nicht einstellen. (Hinweis: Bei Verwendung eines rsync 3.0.0
Client, vielleicht sehen Sie das s Flagge kombiniert mit t statt der richtigen T
Flag für diesen Zeiteinstellungsfehler.)
die a p bedeutet, dass die Berechtigungen unterschiedlich sind und auf die aktualisiert werden
Wert des Absenders (erfordert --dauerwelle).
o Ein o bedeutet, dass der Besitzer ein anderer ist und auf den Wert des Absenders aktualisiert wird
(erfordert --Eigentümer und Superuser-Rechte).
die a g bedeutet, dass die Gruppe anders ist und auf den Wert des Absenders aktualisiert wird
(erfordert --Gruppe und die Berechtigung, die Gruppe festzulegen).
o Die u Der Steckplatz ist für die zukünftige Verwendung reserviert.
o Die a bedeutet, dass sich die ACL-Informationen geändert haben.
o Die x bedeutet, dass sich die erweiterten Attributinformationen geändert haben.
Eine andere Ausgabe ist möglich: Beim Löschen von Dateien gibt das „%i“ den String aus
„*löschen“ für jedes Element, das entfernt wird (vorausgesetzt, Sie sprechen mit einem
aktuell genug, dass rsync Löschungen protokolliert, anstatt sie ausführlich auszugeben
Botschaft).
--out-format=FORMAT
Dadurch können Sie genau festlegen, was der rsync-Client an den Benutzer ausgibt
Pro-Update-Basis. Das Format ist eine Textzeichenfolge mit eingebetteten Einzelzeichen
Escape-Sequenzen mit vorangestelltem Prozentzeichen (%). Ein Standardformat von
In beiden Fällen wird „%n%L“ angenommen --info=Name or -v angegeben ist (dies sagt Ihnen nur das
Name der Datei und, wenn es sich bei dem Element um einen Link handelt, wohin er verweist). Für eine vollständige Liste von
Die möglichen Escape-Zeichen finden Sie in der Einstellung „Protokollformat“ in der rsyncd.conf
Manpage.
Angabe der --out-format Option impliziert die --info=Name Option, die wird
Erwähnen Sie jede Datei, jedes Verzeichnis usw., die in erheblichem Maße aktualisiert (übertragen) wird
Datei, ein neu erstellter Symlink/ein neu erstelltes Gerät oder ein berührtes Verzeichnis). Darüber hinaus, wenn die
itemize-changes Escape (%i) ist in der Zeichenfolge enthalten (z. B. wenn die
--itemize-changes Option verwendet wurde), erhöht sich die Protokollierung von Namen, um alle zu erwähnen
Artikel, der in irgendeiner Weise geändert wird (sofern die empfangende Seite mindestens 2.6.4 ist).
Weitere Informationen im --itemize-changes Option für eine Beschreibung der Ausgabe von „%i“.
Rsync gibt die Out-Format-Zeichenfolge vor der Übertragung einer Datei aus, es sei denn, einer von
Die Übertragungsstatistik-Escapes werden angefordert. In diesem Fall erfolgt die Protokollierung unter
das Ende der Dateiübertragung. Wann diese späte Protokollierung in Kraft tritt und --Fortschritt
Wird ebenfalls angegeben, gibt rsync auch den Namen der zu übertragenden Datei aus
vor seinen Fortschrittsinformationen (natürlich gefolgt von der Out-Format-Ausgabe).
--log-file=DATEI
Diese Option bewirkt, dass rsync seine Aktionen in einer Datei protokolliert. Dies ähnelt dem
Protokollierung, die ein Daemon durchführt, kann aber für die Clientseite und/oder die angefordert werden
Serverseite einer Nicht-Daemon-Übertragung. Wenn als Client-Option angegeben, übertragen
Die Protokollierung wird mit dem Standardformat „%i %n%L“ aktiviert. Siehe die
--log-file-format Option, wenn Sie dies überschreiben möchten.
Hier ist ein Beispielbefehl, der die Remote-Seite auffordert, das Geschehen zu protokollieren:
rsync -av --remote-option=--log-file=/tmp/rlog src/ dest/
Dies ist sehr nützlich, wenn Sie debuggen müssen, warum eine Verbindung unerwartet geschlossen wird.
--log-file-format=FORMAT
Auf diese Weise können Sie genau angeben, welche Protokollierung pro Update in die Datei eingefügt wird
angegeben durch die --Logdatei Option (die auch für diese Option angegeben werden muss).
irgendeine Wirkung haben). Wenn Sie eine leere Zeichenfolge angeben, werden die Dateien nicht aktualisiert
in der Protokolldatei erwähnt. Eine Liste der möglichen Escape-Zeichen finden Sie im
Einstellung „Protokollformat“ in der Manpage rsyncd.conf.
Das standardmäßig verwendete FORMAT, wenn --Logdatei angegeben ist und diese Option nicht vorhanden ist, ist '%i
%n%L'.
--Statistiken
Dadurch wird rsync angewiesen, eine ausführliche Statistik zur Dateiübertragung auszudrucken.
So können Sie feststellen, wie effektiv der Delta-Transfer-Algorithmus von rsync für Sie ist
Daten. Diese Option entspricht --info=stats2 wenn mit 0 oder 1 kombiniert -v
Optionen, oder --info=stats3 wenn mit 2 oder mehr kombiniert -v nach.
Die aktuellen Statistiken lauten wie folgt:
o Nummer of Dateien ist die Anzahl aller „Dateien“ (im allgemeinen Sinne), die
Enthält Verzeichnisse, Symlinks usw. Auf die Gesamtzahl folgt ein
Liste der Zählungen nach Dateityp (wenn die Summe ungleich Null ist). Zum Beispiel: „(reg:
5, dir: 3, link: 2, dev: 1, special: 1)“ listet die Gesamtzahlen für reguläre Dateien auf,
Verzeichnisse, Symlinks, Geräte und spezielle Dateien. Wenn einer der Werte 0 ist, dann
wird in der Liste komplett weggelassen.
o Nummer of erstellt Dateien ist die Anzahl der „Dateien“ (allgemeiner Sinn)
wurden erstellt (im Gegensatz zu aktualisiert). Auf die Gesamtzahl folgt ein
Liste der Zählungen nach Dateityp (wenn die Summe ungleich Null ist).
o Nummer of gelöscht Dateien ist die Anzahl der „Dateien“ (allgemeiner Sinn)
wurden erstellt (im Gegensatz zu aktualisiert). Auf die Gesamtzahl folgt ein
Liste der Zählungen nach Dateityp (wenn die Summe ungleich Null ist). Beachten Sie, dass diese Zeile
wird nur ausgegeben, wenn Löschungen wirksam sind und nur, wenn Protokoll 31 ausgeführt wird
verwendet (die Standardeinstellung für rsync 3.1.x).
o Nummer of regulär Dateien übertragen ist die Anzahl der normalen Dateien, die vorhanden waren
aktualisiert über den Delta-Transfer-Algorithmus von rsync, der keine Verzeichnisse enthält,
Symlinks usw. Beachten Sie, dass rsync 3.1.0 das Wort „regular“ hinzugefügt hat
Überschrift.
o Total Datei Größe ist die Gesamtsumme aller Dateigrößen in der Übertragung. Das
zählt keine Größe für Verzeichnisse oder spezielle Dateien, schließt aber ein
die Größe von Symlinks.
o Total übertragen Datei Größe ist die Gesamtsumme aller Dateigrößen für genau das
übertragene Dateien.
o Wörtlich frustrierten ist, wie viele nicht übereinstimmende Dateiaktualisierungsdaten wir an senden mussten
Empfänger, damit dieser die aktualisierten Dateien neu erstellt.
o Abgestimmt frustrierten gibt an, wie viele Daten der Empfänger lokal bei der Neuerstellung erhalten hat
aktualisierte Dateien.
o Reichen Sie das Liste Größe gibt an, wie groß die Dateilistendaten waren, als der Absender sie gesendet hat
der Empfänger. Dies ist kleiner als die Speichergröße für die fällige Dateiliste
zu einer gewissen Komprimierung duplizierter Daten, wenn rsync die Liste sendet.
o Reichen Sie das Liste Generation Zeit ist die Anzahl der Sekunden, die der Absender verbracht hat
Erstellen der Dateiliste. Dies erfordert einen modernen Rsync auf der Senderseite
damit dies vorhanden ist.
o Reichen Sie das Liste privaten Transfer Zeit ist die Anzahl der Sekunden, die der Absender verbracht hat
Senden der Dateiliste an den Empfänger.
o Total Bytes geschickt ist die Anzahl aller Bytes, die rsync von gesendet hat
Clientseite zur Serverseite.
o Total Bytes Received ist die Anzahl aller Nicht-Nachrichtenbytes, die rsync
von der Serverseite auf der Clientseite empfangen. „Nicht-Nachrichten“-Bytes bedeuten
dass wir die Bytes für eine ausführliche Nachricht, an die der Server gesendet hat, nicht zählen
uns, was die Statistiken konsistenter macht.
-8, --8-Bit-Ausgabe
Dies weist rsync an, stattdessen alle High-Bit-Zeichen in der Ausgabe ohne Escapezeichen zu belassen
zu versuchen, sie zu testen, um zu sehen, ob sie im aktuellen Gebietsschema gültig sind, und zu entkommen
die ungültigen. Alle Steuerzeichen (aber niemals Tabulatoren) werden immer maskiert.
unabhängig von der Einstellung dieser Option.
Die Escape-Redewendung, die in 2.6.7 begann, besteht darin, einen wörtlichen Backslash (\) und ein auszugeben
Hash (#), gefolgt von genau 3 Oktalziffern. Beispielsweise würde eine neue Zeile ausgegeben
als „\#012“. Ein literaler Backslash in einem Dateinamen wird nicht maskiert, sofern dies nicht der Fall ist
gefolgt von einem Hash und 3 Ziffern (0-9).
-H, --für Menschen lesbar
Geben Sie Zahlen in einem besser lesbaren Format aus. Es gibt 3 mögliche Ebenen: (1)
Geben Sie Zahlen mit einem Trennzeichen zwischen jedem Satz von 3 Ziffern aus (entweder ein Komma oder ein).
Punkt, je nachdem, ob der Dezimalpunkt durch einen Punkt oder ein Komma dargestellt wird);
(2) Zahlen in Einheiten von 1000 ausgeben (mit einem Zeichensuffix für größere Einheiten –
siehe unten); (3) Ausgabezahlen in Einheiten von 1024.
Der Standardwert ist für Menschen lesbar, Stufe 1. Jeder -h Option erhöht das Level um eins.
Sie können den Pegel durch Angabe auf 0 senken (um Zahlen als reine Ziffern auszugeben).
die --no-human-readable (--nein-h) Möglichkeit.
Die in den Stufen 2 und 3 angehängten Einheitenbuchstaben sind: K (Kilo), M (Mega), G
(Giga) oder T (Tera). Beispielsweise würde eine 1234567-Byte-Datei als 1.23 MB ausgegeben
Ebene 2 (vorausgesetzt, dass ein Punkt Ihr lokaler Dezimalpunkt ist).
Hinweis zur Abwärtskompatibilität: Versionen von rsync vor 3.1.0 werden nicht unterstützt
Für Menschen lesbar ist die Stufe 1, und sie sind standardmäßig auf Stufe 0 eingestellt. Geben Sie also eins oder zwei an
-h Optionen verhalten sich in alten und neuen Versionen vergleichbar, solange
Sie haben kein angegeben --nein-h Option vor einer oder mehreren -h Optionen. Siehe die
--list-only Option für einen Unterschied.
--teilweise
Standardmäßig löscht rsync alle teilweise übertragenen Dateien, wenn die Übertragung erfolgt
unterbrochen. Unter bestimmten Umständen ist es wünschenswerter, einen Teil davon zu behalten
übertragene Dateien. Verwendung der --teilweise Option weist rsync an, die Teildatei zu behalten
was eine spätere Übertragung der restlichen Datei deutlich schneller machen sollte.
--partial-dir=VERZEICHNIS
Eine bessere Möglichkeit, Teildateien aufzubewahren als die --teilweise Option ist die Angabe von a DIR
die zum Speichern der Teildaten verwendet wird (anstatt sie in die Datei zu schreiben).
Zieldatei). Bei der nächsten Übertragung verwendet rsync eine in diesem Verzeichnis gefundene Datei
als Daten, um die Wiederaufnahme der Übertragung zu beschleunigen, und löschen Sie sie anschließend
hat seinen Zweck erfüllt.
Beachten Sie, dass wenn --whole-file angegeben (oder impliziert) ist, jede Teilverzeichnisdatei
für eine Datei gefunden wird, die aktualisiert wird, wird einfach entfernt (da rsync ist
Senden von Dateien ohne Verwendung des Delta-Transfer-Algorithmus von rsync).
Rsync erstellt das DIR wenn es fehlt (nur das letzte Verzeichnis – nicht das Ganze).
Weg). Dies erleichtert die Verwendung eines relativen Pfads (z. B
"--partial-dir=.rsync-partial"), damit rsync das Teilverzeichnis im erstellt
Kopieren Sie bei Bedarf das Verzeichnis der Zieldatei und entfernen Sie es dann wieder, wenn die teilweise
Datei wird gelöscht.
Wenn der Teilverzeichniswert kein absoluter Pfad ist, fügt rsync eine Ausschlussregel hinzu
das Ende aller Ihrer bestehenden Ausschlüsse. Dadurch wird das Versenden jeglicher E-Mails verhindert
Teilverzeichnisdateien, die möglicherweise auf der Absenderseite vorhanden sind, und verhindern auch das
vorzeitiges Löschen von Teilverzeichnispositionen auf der Empfängerseite. Ein Beispiel: die
oben --partial-dir Option würde das Äquivalent von „ hinzufügen-f '-P .rsync-partial/'"An
das Ende aller anderen Filterregeln.
Wenn Sie Ihre eigenen Ausschlussregeln angeben, müssen Sie möglicherweise Ihre eigenen hinzufügen
Regel zum Ausschließen/Ausblenden/Schützen für das Teilverzeichnis, weil (1) die automatisch hinzugefügte Regel möglicherweise
am Ende Ihrer anderen Regeln unwirksam sein oder (2) Sie möchten möglicherweise außer Kraft setzen
rsyncs Ausschlussauswahl. Zum Beispiel, wenn Sie die Rsync-Bereinigung durchführen möchten
Übrig gebliebene Teilverzeichnisse, die möglicherweise herumliegen, sollten Sie angeben --delete-after
und fügen Sie eine „Risiko“-Filterregel hinzu, z -f 'R .rsync-partial/'. (Vermeide das Benutzen
--delete-before or --delete-during es sei denn, Sie benötigen rsync nicht, um eines davon zu verwenden
verbleibende Teilverzeichnisdaten während des aktuellen Laufs.)
WICHTIG: die --partial-dir sollte nicht von anderen Benutzern beschreibbar sein, sonst ist es ein
Sicherheitsrisiko. ZB VERMEIDEN“/ Tmp".
Sie können den Teilverzeichniswert auch in der Umgebungsvariablen RSYNC_PARTIAL_DIR festlegen.
Wenn Sie dies in der Umgebung festlegen, wird dies nicht erzwungen --teilweise aktiviert werden, sondern vielmehr
Es wirkt sich darauf aus, wohin Teildateien wann verschoben werden --teilweise angegeben. Zum Beispiel,
anstatt zu verwenden --partial-dir=.rsync-tmp zusammen mit --Fortschritt, du könntest einstellen
RSYNC_PARTIAL_DIR=.rsync-tmp in Ihrer Umgebung und verwenden Sie dann einfach das -P Option zu
Aktivieren Sie die Verwendung des .rsync-tmp-Verzeichnisses für Teilübertragungen. Das einzige Mal, dass
die --teilweise Option sucht nicht nach diesem Umgebungswert sind (1), wenn
--an Ort und Stelle angegeben wurde (seit --an Ort und Stelle Konflikte mit --partial-dir), und 2)
wann --delay-updates angegeben wurde (siehe unten).
Für die Zwecke der „Refuse-Optionen“-Einstellung der Daemon-Konfiguration gilt: --partial-dir
die nicht implizieren --teilweise. Dies ist so, dass eine Ablehnung des --teilweise Option kann sein
Wird verwendet, um das Überschreiben von Zieldateien bei einer teilweisen Übertragung zu verhindern.
während immer noch die sicherere Ausdrucksweise zugelassen wird, die von bereitgestellt wird --partial-dir.
--delay-updates
Diese Option legt die temporäre Datei jeder aktualisierten Datei in einem Halteverzeichnis ab
bis zum Ende der Übertragung. Zu diesem Zeitpunkt werden alle Dateien umbenannt
in schneller Folge. Dadurch wird versucht, die Aktualisierung der Dateien etwas zu vereinfachen
atomar. Standardmäßig werden die Dateien jeweils in einem Verzeichnis mit dem Namen „.~tmp~“ abgelegt
Das Zielverzeichnis der Datei, aber wenn Sie das angegeben haben --partial-dir Option,
Stattdessen wird dieses Verzeichnis verwendet. Siehe die Kommentare im --partial-dir Abschnitt
für eine Diskussion darüber, wie dieses „.~tmp~“-Verzeichnis von der Übertragung ausgeschlossen wird, und
Was Sie tun können, wenn Sie möchten, dass rsync alte „.~tmp~“-Verzeichnisse bereinigt, die möglicherweise lügen
um. Konflikte mit --an Ort und Stelle und --anhängen.
Diese Option benötigt mehr Speicher auf der Empfangsseite (ein Bit pro übertragene Datei).
und erfordert außerdem genügend freien Speicherplatz auf der Empfangsseite, um eine zu speichern
zusätzliche Kopie aller aktualisierten Dateien. Beachten Sie auch, dass Sie kein verwenden sollten
absoluter Weg zu --partial-dir es sei denn (1) es besteht keine Chance auf eine der Dateien in
Die Übertragung hat den gleichen Namen (da alle aktualisierten Dateien in einer Datei abgelegt werden
einzelnes Verzeichnis, wenn der Pfad absolut ist) und (2) es gibt keine Einhängepunkte im
Hierarchie (da die verzögerten Aktualisierungen fehlschlagen, wenn sie nicht umbenannt werden können).
Platz).
Für ein Update siehe auch das Perl-Skript „atomic-rsync“ im Unterverzeichnis „support“.
Algorithmus, der noch atomarer ist (er verwendet --link-dest und eine parallele Hierarchie von
Dateien).
-M, --prune-empty-dirs
Diese Option weist den empfangenden Rsync an, leere Verzeichnisse aus dem zu entfernen
Dateiliste, einschließlich verschachtelter Verzeichnisse, die keine untergeordneten Verzeichnisse haben. Das
ist nützlich, um die Erstellung einer Reihe nutzloser Verzeichnisse zu vermeiden, wenn die
Beim Senden von rsync wird eine Hierarchie von Dateien rekursiv gescannt
Einschluss-/Ausschluss-/Filterregeln.
Beachten Sie, dass die Verwendung von Übertragungsregeln, wie z --min-Größe Option, hat keinen Einfluss
Was geht in die Dateiliste und lässt somit keine Verzeichnisse leer, auch wenn
Keine der Dateien in einem Verzeichnis entspricht der Übertragungsregel.
Da die Dateiliste tatsächlich bereinigt wird, wirkt sich diese Option auch darauf aus, was
Verzeichnisse werden gelöscht, wenn ein Löschvorgang aktiv ist. Bedenken Sie jedoch, dass
Ausgeschlossene Dateien und Verzeichnisse können verhindern, dass vorhandene Elemente gelöscht werden
und schließt sowohl das Ausblenden von Quelldateien als auch den Schutz von Zieldateien aus. Siehe die
Perishable Filter-Rule-Option, wie Sie dies vermeiden können.
Sie können das Entfernen bestimmter leerer Verzeichnisse aus der Dateiliste verhindern, indem Sie
Verwendung eines globalen „Schutz“-Filters. Diese Option würde beispielsweise sicherstellen, dass die
Verzeichnis „emptydir“ wurde in der Dateiliste behalten:
--filter 'leeres Verzeichnis schützen/'
Hier ist ein Beispiel, das alle PDF-Dateien in einer Hierarchie kopiert und nur die erstellt
benötigte Zielverzeichnisse zum Speichern der PDF-Dateien und stellt sicher, dass alle vorhanden sind
Überflüssige Dateien und Verzeichnisse im Ziel werden entfernt (beachten Sie das Ausblenden
Filter von Nicht-Verzeichnissen, der anstelle eines Ausschlusses verwendet wird):
rsync -avm --del --include='*.pdf' -f 'verstecken,! */' src/ dest
Wenn Sie überflüssige Zieldateien nicht entfernen möchten, ist dies eine bewährte Methode
Optionen von „--include='*/' --exclude='*'" würde anstelle von gut funktionieren
hide-filter (falls das für Sie natürlicher ist).
--Fortschritt
Diese Option weist rsync an, Informationen über den Fortschritt der Übertragung auszudrucken.
Dies gibt einem gelangweilten Benutzer etwas zum Anschauen. Bei einem modernen Rsync ist dies dasselbe
als Angabe --info=flist2,name,fortschritt, aber alle vom Benutzer bereitgestellten Einstellungen für diese
Info-Flags haben Vorrang (z. B. „--info=flist0 --progress“).
Während rsync eine reguläre Datei überträgt, aktualisiert es eine Fortschrittszeile, die aussieht
so was:
782448 63 % 110.64 kB/s 0:00:04
In diesem Beispiel hat der Empfänger 782448 Bytes oder 63 % der des Absenders rekonstruiert
Datei, die mit einer Rate von 110.64 Kilobyte pro Sekunde rekonstruiert wird, und
Die Übertragung wird in 4 Sekunden abgeschlossen, wenn die aktuelle Rate bis zum beibehalten wird
Ende.
Diese Statistiken können irreführend sein, wenn der Delta-Transfer-Algorithmus von rsync verwendet wird.
Wenn die Datei des Absenders beispielsweise aus der Basisdatei gefolgt von einer Zusatzdatei besteht
Daten wird die gemeldete Rate wahrscheinlich dramatisch sinken, wenn der Empfänger ankommt
die wörtlichen Daten, und die Übertragung wird wahrscheinlich viel länger dauern als
Der Empfänger schätzte, dass er dabei war, den passenden Teil der Datei fertigzustellen.
Wenn die Dateiübertragung abgeschlossen ist, ersetzt rsync die Fortschrittszeile durch eine Zusammenfassung
Zeile, die so aussieht:
1,238,099 100 % 146.38 kB/s 0:00:08 (xfr#5, to-chk=169/396)
In diesem Beispiel war die Datei insgesamt 1,238,099 Bytes lang, die durchschnittliche Rate beträgt
Die Übertragung der gesamten Datei betrug in den 146.38 Sekunden 8 Kilobyte pro Sekunde
Es dauerte bis zum Abschluss, es war die fünfte Übertragung einer regulären Datei in diesem Jahr
rsync-Sitzung, und es gibt 169 weitere Dateien, die der Empfänger überprüfen muss (um zu sehen, ob
ob sie aktuell sind oder nicht) aus den insgesamt 396 Dateien in der Dateiliste.
Bei einem inkrementellen Rekursionsscan kennt rsync nicht die Gesamtzahl der Dateien im
Dateiliste, bis das Ende des Scans erreicht ist, aber seitdem die Übertragung beginnt
Dateien während des Scans, wird eine Zeile mit dem Text „ir-chk“ angezeigt (für
inkrementelle Rekursionsprüfung) anstelle von „to-chk“, bis der Punkt bekannt ist
Die gesamte Größe der Liste wird angezeigt. An diesem Punkt wird auf die Verwendung von „to-chk“ umgeschaltet. Daher,
Wenn Sie „ir-chk“ sehen, wissen Sie, dass die Gesamtzahl der Dateien in der Dateiliste beträgt
wird immer noch zunehmen (und jedes Mal, wenn dies der Fall ist, steigt die Anzahl der noch zu überprüfenden Dateien
erhöht sich um die Anzahl der zur Liste hinzugefügten Dateien).
-P Die -P Option ist äquivalent zu --teilweise --Fortschritt. Sein Zweck ist es, es zu schaffen
Es ist viel einfacher, diese beiden Optionen für eine lange Übertragung anzugeben
unterbrochen.
Da ist auch ein --info=progress2 Option, die Statistiken basierend auf dem Ganzen ausgibt
Übertragung statt einzelner Dateien. Verwenden Sie dieses Flag, ohne a auszugeben
Dateiname (z. B. „vermeiden -v oder angeben --info=name0 Wenn Sie sehen möchten, wie die Übertragung erfolgt
verzichtet auf das Scrollen des Bildschirms mit vielen Namen. (Das ist nicht nötig
Präzisiere das --Fortschritt Option zu verwenden --info=progress2.)
--password-file=DATEI
Mit dieser Option können Sie ein Passwort für den Zugriff auf einen Rsync-Daemon über a bereitstellen
Datei oder über die Standardeingabe wenn FILE is -. Die Datei sollte nur das Passwort enthalten
in der ersten Zeile (alle anderen Zeilen werden ignoriert). Rsync wird mit einem Fehler beendet, wenn
FILE allgemein lesbar ist oder wenn ein von Root ausgeführter rsync-Befehl eine Datei findet, die nicht dem Root-Benutzer gehört.
Diese Option stellt kein Passwort für einen Remote-Shell-Transport wie ssh bereit; Zu
Weitere Informationen dazu finden Sie in der Dokumentation der Remote-Shell. Beim Zugriff auf eine
Wenn der rsync-Daemon eine Remote-Shell als Transport verwendet, kommt diese Option nur zum Einsatz
Wirkung, nachdem die Remote-Shell ihre Authentifizierung abgeschlossen hat (d. h. wenn Sie dies auch getan haben).
hat in der Konfigurationsdatei des Daemons ein Passwort angegeben).
--list-only
Diese Option führt dazu, dass die Quelldateien aufgelistet statt übertragen werden. Das
Die Option wird abgeleitet, wenn ein einzelnes Quellargument und kein Ziel angegeben ist
Seine Hauptverwendungen sind: (1) Um einen Kopierbefehl, der ein Zielarg enthält, in umzuwandeln
ein Dateilistenbefehl oder (2) um mehr als ein Quellargument angeben zu können
(Hinweis: Geben Sie unbedingt das Ziel an.) Achtung: Beachten Sie, dass es sich um eine Quelle handelt
Ein Argument mit einem Platzhalter wird von der Shell in mehrere Argumente erweitert, ist also nie der Fall
Versuchen Sie sicher, ein solches Argument aufzulisten, ohne diese Option zu verwenden. Zum Beispiel:
rsync -av --list-only foo* dest/
Ab rsync 3.1.0 werden die Größen ausgegeben von --list-only sind betroffen von der
--für Menschen lesbar Möglichkeit. Standardmäßig enthalten sie Zifferntrennzeichen, jedoch höher
Lesbarkeitsstufen geben die Größen mit Einheitensuffixen aus. Beachten Sie auch, dass die
Die Spaltenbreite für die Größenausgabe wurde für alle von 11 auf 14 Zeichen erhöht
für Menschen lesbare Ebenen. Verwenden --nein-h wenn Sie nur Ziffern in den Größen wünschen, und die
alte Spaltenbreite von 11 Zeichen.
Kompatibilitätshinweis: Wenn Sie eine Remote-Liste von Dateien von einem Rsync anfordern
Ist Version 2.6.3 oder älter, kann es zu einer Fehlermeldung kommen, wenn Sie nach einer fragen
nicht rekursive Auflistung. Dies liegt daran, dass eine Dateiliste das impliziert --dir ganz ohne irgendetwas tun oder drücken zu müssen.
ohne - rekursiv, und ältere Rsyncs haben diese Option nicht. Um dieses Problem zu vermeiden,
entweder angeben --no-dirs Option (wenn Sie das Verzeichnis eines Verzeichnisses nicht erweitern müssen
Inhalt) oder aktivieren Sie die Rekursion und schließen Sie den Inhalt von Unterverzeichnissen aus: -r
--exclude='/*/*'.
--bwlimit=RATE
Mit dieser Option können Sie die maximale Übertragungsrate für die gesendeten Daten festlegen
der Socket, angegeben in Einheiten pro Sekunde. Dem RATE-Wert kann ein Suffix hinzugefügt werden
Zeichenfolge, die einen Größenmultiplikator angibt, und kann ein Bruchwert sein (z. B
"--bwlimit=1.5m"). Wenn kein Suffix angegeben ist, wird davon ausgegangen, dass der Wert in liegt
Einheiten von 1024 Bytes (als ob „K“ oder „KiB“ angehängt worden wäre). Siehe die --maximale Größe
Option für eine Beschreibung aller verfügbaren Suffixe. Ein Wert von Null gibt an
keine Begrenzung.
Aus Gründen der Abwärtskompatibilität wird die Ratenbegrenzung auf den nächsten Wert gerundet
KiB-Einheit, daher ist keine Rate kleiner als 1024 Bytes pro Sekunde möglich.
Rsync schreibt Daten blockweise über den Socket, und diese Option begrenzt die Größe
der Blöcke, die rsync schreibt, und versucht, die durchschnittliche Übertragungsrate beizubehalten
angeforderte Grenze. Wenn rsync einen Block ausschreibt, kann es zu einem gewissen „Burstiness“ kommen
Daten und schläft dann, um die Durchschnittsrate in Übereinstimmung zu bringen.
Aufgrund der internen Pufferung der Daten ist die --Fortschritt Die Option ist möglicherweise nicht korrekt
Reflexion darüber, wie schnell die Daten gesendet werden. Dies liegt daran, dass einige Dateien möglicherweise angezeigt werden
werden als schnell gesendet angezeigt, wenn die Daten schnell zwischengespeichert werden, während andere angezeigt werden können
als sehr langsam, wenn das Leeren des Ausgabepuffers erfolgt. Dies kann in a behoben werden
zukünftige Version.
--write-batch=DATEI
Zeichnen Sie eine Datei auf, die später auf ein anderes identisches Ziel angewendet werden kann
--read-batch. Einzelheiten finden Sie im Abschnitt „BATCH-MODUS“ sowie im Abschnitt „BATCH-MODUS“.
--only-write-batch .
--only-write-batch=DATEI
Funktioniert wie --write-batch, mit der Ausnahme, dass auf dem Zielsystem keine Aktualisierungen vorgenommen werden
beim Erstellen des Stapels. Dadurch können Sie die Änderungen zum Ziel transportieren
System auf andere Weise importieren und dann die Änderungen über übernehmen --read-batch.
Beachten Sie, dass Sie den Stapel auch direkt auf ein tragbares Medium schreiben können: if
Wenn dieses Medium vor dem Ende der Übertragung voll ist, können Sie es einfach beantragen
diesen teilweisen Transfer zum Ziel und wiederholen Sie den gesamten Vorgang, um den zu erhalten
Rest der Änderungen (solange Ihnen ein teilweise aktualisiertes Ziel nichts ausmacht
System während des Multi-Update-Zyklus).
Beachten Sie außerdem, dass Sie nur dann Bandbreite sparen, wenn Sie Änderungen an ein Remote-System übertragen
denn dadurch können die gestapelten Daten vom Absender in den Stapel umgeleitet werden
Datei, ohne dass sie über die Leitung zum Empfänger (beim Ziehen zum Sender) fließen muss
ist remote und kann daher den Stapel nicht schreiben).
--read-batch=DATEI
Wenden Sie alle in FILE gespeicherten Änderungen an, einer Datei, die zuvor von erstellt wurde
--write-batch. Wenn FILE is -, werden die Batch-Daten aus der Standardeingabe gelesen. Sehen
Weitere Informationen finden Sie im Abschnitt „BATCH-MODUS“.
--protocol=NUM
Erzwingen Sie die Verwendung einer älteren Protokollversion. Dies ist nützlich, um einen Stapel zu erstellen
Datei, die mit einer älteren Version von rsync kompatibel ist. Wenn beispielsweise rsync
2.6.4 wird mit dem verwendet --write-batch Option, aber rsync 2.6.3 ist das, was sein wird
Verwendet, um die zu laufen --read-batch Option sollten Sie beim Erstellen „--protocol=28“ verwenden
die Batchdatei, um die Verwendung der älteren Protokollversion in der Batchdatei zu erzwingen
(vorausgesetzt, Sie können den Rsync auf dem Lesesystem nicht aktualisieren).
--iconv=CONVERT_SPEC
Mit dieser Option kann Rsync Dateinamen zwischen Zeichensätzen konvertieren. Verwendung einer
CONVERT_SPEC von „.“ weist rsync an, den Standardzeichensatz über das Gebietsschema zu suchen
Einstellung. Alternativ können Sie die durchzuführende Konvertierung vollständig angeben, indem Sie a angeben
lokaler und ein entfernter Zeichensatz, in der Reihenfolge durch ein Komma getrennt --iconv=LOKAL,REMOTE,
z.B --iconv=utf8,iso88591. Diese Reihenfolge stellt sicher, dass die Option gleich bleibt
Egal, ob Sie Dateien pushen oder ziehen. Schließlich können Sie beides angeben
--no-iconv oder ein CONVERT_SPEC von „-“, um jegliche Konvertierung zu deaktivieren. Der Standard
Die Einstellung dieser Option ist standortspezifisch und kann auch über beeinflusst werden
Umgebungsvariable RSYNC_ICONV.
Für eine Liste der Zeichensatznamen, die Ihre lokale Iconv-Bibliothek unterstützt, können Sie Folgendes ausführen
„iconv --list“.
Wenn Sie die angeben --protect-args Option (-s), übersetzt rsync die Dateinamen
Sie geben in der Befehlszeile an, dass sie an den Remote-Host gesendet werden. Siehe auch
die --Dateien-von .
Beachten Sie, dass rsync keine Namenskonvertierung in Filterdateien durchführt (einschließlich
Dateien einschließen/ausschließen). Es liegt an Ihnen, sicherzustellen, dass Sie die Übereinstimmung angeben
Regeln, die auf beiden Seiten der Übertragung übereinstimmen können. Sie können beispielsweise angeben
Zusätzliche Einschluss-/Ausschlussregeln, wenn es auf beiden Seiten Dateinamenunterschiede gibt
müssen berücksichtigt werden.
Wenn Sie an einem vorbeikommen --iconv Option für einen Rsync-Daemon, der dies zulässt, verwendet der Daemon
der im Konfigurationsparameter „charset“ angegebene Zeichensatz, unabhängig davon
Remote-Zeichensatz, den Sie tatsächlich übergeben. Daher können Sie gerne genau das angeben
Lokaler Zeichensatz für eine Daemon-Übertragung (z. B --iconv=utf8).
-4, --ipv4 or -6, --ipv6
Weist rsync an, beim Erstellen von Sockets IPv4/IPv6 zu bevorzugen. Dies betrifft nur Sockets
dass rsync direkte Kontrolle hat, z. B. den ausgehenden Socket, wenn er direkt ist
Kontaktaufnahme mit einem Rsync-Daemon. Siehe auch diese Optionen im --dämon Modus Abschnitt.
Wenn rsync ohne Unterstützung für IPv6 eingehalten wurde, wird die --ipv6 Option wird nein haben
bewirken. Das --Version Die Ausgabe wird Ihnen sagen, ob dies der Fall ist.
--checksum-seed=NUM
Legen Sie den Startwert der Prüfsumme auf die Ganzzahl NUM fest. Dieser 4-Byte-Prüfsummen-Seed ist in enthalten
Berechnung jedes Blocks und der MD4-Dateiprüfsumme (die moderneren MD5-Dateiprüfsummen).
kein Saatgut verwenden). Standardmäßig wird der Prüfsummen-Seed vom Server generiert und
Standardmäßig ist die aktuelle time() . Mit dieser Option wird eine bestimmte Prüfsumme festgelegt
Seed, was für Anwendungen nützlich ist, die wiederholbare Blockprüfsummen wünschen, oder in
der Fall, in dem der Benutzer einen zufälligeren Prüfsummen-Seed wünscht. Das Festlegen von NUM auf 0 verursacht
rsync, um den Standardwert von time() für den Prüfsummen-Seed zu verwenden.
DÄMON OPTIONAL
Die beim Starten eines rsync-Daemons zulässigen Optionen sind wie folgt:
--dämon
Dadurch wird rsync mitgeteilt, dass es als Daemon ausgeführt werden soll. Der Daemon, den Sie starten, kann
Der Zugriff erfolgt über einen Rsync-Client mit dem host::module or rsync://host/module/
Syntax.
Wenn es sich bei der Standardeingabe um einen Socket handelt, geht rsync davon aus, dass er über ausgeführt wird
inetd, andernfalls wird es vom aktuellen Terminal getrennt und zum Hintergrund
Daemon. Der Daemon liest die Konfigurationsdatei (rsyncd.conf) bei jeder von hergestellten Verbindung
eines Kunden und reagieren entsprechend auf Anfragen. Siehe die rsyncd.conf(5) Handbuchseite für
mehr Details.
--die Anschrift
Standardmäßig bindet rsync an die Wildcard-Adresse, wenn es als Daemon mit ausgeführt wird
--dämon Option. Die --die Anschrift Mit der Option können Sie eine bestimmte IP-Adresse angeben
(oder Hostname), an den gebunden werden soll. Dies ermöglicht virtuelles Hosting in Verbindung mit
die --config Möglichkeit. Siehe auch die globale Option „address“ in der rsyncd.conf
Manpage.
--bwlimit=RATE
Mit dieser Option können Sie die maximale Übertragungsrate für die Daten des Daemons festlegen
sendet über den Socket. Der Kunde kann immer noch eine kleinere angeben --bwlimit Wert, aber
Es ist kein größerer Wert zulässig. Weitere Informationen finden Sie in der Client-Version dieser Option (oben).
einige zusätzliche Details.
--config=DATEI
Dies gibt eine andere Konfigurationsdatei als die Standardkonfiguration an. Das ist nur relevant
wann --dämon angegeben. Die Standardeinstellung ist /etc/rsyncd.conf es sei denn, der Daemon ist es
läuft über ein Remote-Shell-Programm und der Remote-Benutzer ist nicht der Superuser; In
In diesem Fall ist die Standardeinstellung rsyncd.conf im aktuellen Verzeichnis (normalerweise $HOME).
-M, --dparam=OVERRIDE
Mit dieser Option kann beim Starten von rsync ein Daemon-Config-Parameter festgelegt werden
Daemon-Modus. Dies entspricht dem Hinzufügen des Parameters am Ende des globalen Parameters
Einstellungen vor der Definition des ersten Moduls. Die Parameternamen können sein
auf Wunsch auch ohne Leerzeichen angeben. Zum Beispiel:
rsync --daemon -M pidfile=/path/rsync.pid
--no-detach
Bei der Ausführung als Daemon weist diese Option rsync an, sich nicht selbst zu trennen und
zu einem Hintergrundprozess werden. Diese Option ist erforderlich, wenn es als Dienst ausgeführt wird
Cygwin und kann auch nützlich sein, wenn rsync von einem Programm wie überwacht wird
Daemontools oder AIXs System Ressource Controller. --no-detach ist auch empfehlenswert
wenn rsync unter einem Debugger ausgeführt wird. Diese Option hat keine Auswirkung, wenn rsync ausgeführt wird
inetd oder sshd.
--port=PORT
Dies gibt eine alternative TCP-Portnummer an, an der der Daemon lauscht
der Standardwert ist 873. Siehe auch die globale Option „port“ in der Manpage rsyncd.conf.
--log-file=DATEI
Diese Option weist den rsync-Daemon an, den angegebenen Protokolldateinamen anstelle von „using“ zu verwenden
die Einstellung „Protokolldatei“ in der Konfigurationsdatei.
--log-file-format=FORMAT
Diese Option weist den rsync-Daemon an, die angegebene FORMAT-Zeichenfolge anstelle von „using“ zu verwenden
die Einstellung „Protokollformat“ in der Konfigurationsdatei. Es ermöglicht auch die „Übertragungsprotokollierung“
es sei denn, die Zeichenfolge ist leer. In diesem Fall ist die Übertragungsprotokollierung deaktiviert.
--sockopts
Dies überschreibt die Buchse Optionen Einstellung in der Datei rsyncd.conf und hat die gleiche
Syntax.
-in, - ausführlich
Diese Option erhöht die Menge an Informationen, die der Daemon während seines Starts protokolliert
Phase. Nachdem der Client eine Verbindung hergestellt hat, wird die Ausführlichkeitsstufe des Daemons gesteuert
durch die vom Client verwendeten Optionen und die Einstellung „maximale Ausführlichkeit“ im Modul
Konfigurationsabschnitt.
-4, --ipv4 or -6, --ipv6
Weist rsync an, IPv4/IPv6 zu bevorzugen, wenn die eingehenden Sockets erstellt werden, die rsync benötigt
Der Daemon wird zum Abhören von Verbindungen verwendet. Eine dieser Optionen ist möglicherweise erforderlich
ältere Linux-Versionen, um einen IPv6-Fehler im Kernel zu umgehen (falls Sie einen Fehler sehen).
Fehler „Adresse wird bereits verwendet“, wenn nichts anderes den Port verwendet, versuchen Sie es anzugeben
--ipv6 or --ipv4 beim Starten des Daemons).
Wenn rsync ohne Unterstützung für IPv6 eingehalten wurde, wird die --ipv6 Option wird nein haben
bewirken. Das --Version Die Ausgabe wird Ihnen sagen, ob dies der Fall ist.
-H, --help
Wenn danach angegeben --dämon, drucken Sie eine kurze Hilfeseite aus, auf der die Optionen beschrieben werden
zum Starten eines Rsync-Daemons verfügbar.
FILTER REGELN
Die Filterregeln ermöglichen eine flexible Auswahl der zu übertragenden (einschließenden) Dateien
welche Dateien übersprungen (ausgeschlossen) werden sollen. Die Regeln geben entweder direkt Einschluss-/Ausschlussmuster an
oder sie geben eine Möglichkeit an, weitere Einschluss-/Ausschlussmuster zu erhalten (z. B. um sie aus einem zu lesen).
Datei).
Während die Liste der zu übertragenden Dateien/Verzeichnisse erstellt wird, überprüft rsync jeden Namen
werden nacheinander gegen die Liste der Einschluss-/Ausschlussmuster und den ersten Abgleich übertragen
Auf das Muster wird reagiert: Wenn es sich um ein Ausschlussmuster handelt, wird diese Datei übersprungen. wenn es ein ist
Muster einschließen, dann wird dieser Dateiname nicht übersprungen; Wenn kein passendes Muster gefunden wird, dann
Der Dateiname wird nicht übersprungen.
Rsync erstellt eine geordnete Liste von Filterregeln, wie in der Befehlszeile angegeben. Filter
Regeln haben die folgende Syntax:
REGEL [PATTERN_OR_FILENAME]
REGEL, MODIFIKATOREN [PATTERN_OR_FILENAME]
Sie haben die Wahl, entweder kurze oder lange REGEL-Namen zu verwenden, wie unten beschrieben. Wenn du
Verwenden Sie eine Regel mit Kurznamen. Das „,“ zur Trennung der REGEL von den MODIFIKATOREN ist optional. Der
PATTERN oder FILENAME, die folgen (falls vorhanden), müssen entweder nach einem einzelnen Leerzeichen oder stehen
ein Unterstrich (_). Hier sind die verfügbaren Regelpräfixe:
ausschließen, - Gibt ein Ausschlussmuster an.
enthalten, + Gibt ein Einschlussmuster an.
verschmelzen, . Gibt eine Zusammenführungsdatei an, die für weitere Regeln gelesen werden soll.
dir-merge, : Gibt eine verzeichnisspezifische Zusammenführungsdatei an.
ausblenden, H Gibt ein Muster zum Ausblenden von Dateien vor der Übertragung an.
Show, S Dateien, die dem Muster entsprechen, werden nicht ausgeblendet.
beschützen, P Gibt ein Muster zum Schutz von Dateien vor dem Löschen an.
Risiko, R Dateien, die dem Muster entsprechen, sind nicht geschützt.
klar, ! löscht die aktuelle Einschluss-/Ausschlussliste (benötigt kein Argument)
Beim Lesen von Regeln aus einer Datei werden leere Zeilen ignoriert, ebenso wie Kommentarzeilen
Beginnen Sie mit einem „#“.
Beachten Sie, dass die --enthalten/--ausschließen Befehlszeilenoptionen ermöglichen nicht den gesamten Regelumfang
Parsen wie oben beschrieben – sie erlauben nur die Angabe von Einschluss/Ausschluss
Muster plus ein „!“ Token zum Löschen der Liste (und das normale Analysieren von Kommentaren, wenn Regeln gelten).
aus einer Datei lesen). Wenn ein Muster nicht mit „-“ (Bindestrich, Leerzeichen) oder „+“ (Plus,
Leerzeichen), dann wird die Regel so interpretiert, als ob „+“ (für eine Include-Option) oder „-“ (für
eine Ausschlussoption) wurden der Zeichenfolge vorangestellt. A --Filter Option, andererseits
muss am Anfang der Regel immer entweder einen kurzen oder einen langen Regelnamen enthalten.
Beachten Sie auch, dass die --Filter, --enthalten und --ausschließen Optionen erfordern jeweils eine Regel/ein Muster.
Um mehrere hinzuzufügen, können Sie die Optionen in der Befehlszeile wiederholen und die Zusammenführungsdatei verwenden
Syntax der --Filter Option oder die --einschließen-von/--ausgeschlossen von nach.
UMFASSEN AUSSCHLIESSEN MUSTER REGELN
Sie können Dateien einschließen und ausschließen, indem Sie Muster mithilfe des Filters „+“, „-“ usw. angeben
Regeln (wie oben im Abschnitt FILTERREGELN eingeführt). Die Einschluss-/Ausschlussregeln jeweils
Geben Sie ein Muster an, das mit den Namen der Dateien abgeglichen wird, die erstellt werden sollen
übertragen. Diese Muster können verschiedene Formen annehmen:
o Wenn das Muster mit einem / beginnt, ist es an einer bestimmten Stelle im verankert
Hierarchie der Dateien, andernfalls wird es mit dem Ende des Pfadnamens abgeglichen. Das
ähnelt einem führenden ^ in regulären Ausdrücken. Somit würde „/foo“ mit einem Namen übereinstimmen
von „foo“ entweder am „Stammverzeichnis der Übertragung“ (für eine globale Regel) oder im
Verzeichnis der Zusammenführungsdatei (für eine Regel pro Verzeichnis). Ein unqualifiziertes „foo“ würde es tun
Übereinstimmung mit dem Namen „foo“ an einer beliebigen Stelle im Baum, da der Algorithmus angewendet wird
rekursiv von oben nach unten; es verhält sich so, als ob jede Pfadkomponente an der Reihe wäre
ist das Ende des Dateinamens. Sogar das nicht verankerte „sub/foo“ würde zu jedem passen
Punkt in der Hierarchie, an dem ein „foo“ in einem Verzeichnis mit dem Namen „sub“ gefunden wurde. Sehen
Im Abschnitt zum VERANKEN VON INCLUDE/EXCLUDE-MUSTERN finden Sie eine ausführliche Beschreibung der Vorgehensweise
Geben Sie ein Muster an, das mit der Wurzel der Übertragung übereinstimmt.
o Wenn das Muster mit einem / endet, stimmt es nur mit einem Verzeichnis überein, nicht mit einem regulären
Datei, Symlink oder Gerät.
o rsync wählt zwischen einem einfachen String-Match und einem Wildcard-Matching durch Überprüfung
wenn das Muster eines dieser drei Platzhalterzeichen enthält: „*“, „?“ und „[“.
o '*' stimmt mit jeder Pfadkomponente überein, stoppt jedoch bei Schrägstrichen.
o Verwenden Sie „**“, um alles zu finden, auch Schrägstriche.
oa '?' entspricht jedem Zeichen außer einem Schrägstrich (/).
oa '[' führt eine Zeichenklasse ein, beispielsweise [az] oder [[:alpha:]].
o In einem Platzhaltermuster kann ein Backslash verwendet werden, um ein Platzhalterzeichen zu maskieren, aber
es wird buchstäblich abgeglichen, wenn keine Platzhalter vorhanden sind. Dies bedeutet, dass es eine gibt
Zusätzliche Stufe der Backslash-Entfernung, wenn ein Muster Platzhalterzeichen enthält
im Vergleich zu einem Muster, das keines hat. z. B. wenn Sie einen Platzhalter zu „foo\bar“ hinzufügen
(was dem Backslash entspricht) Sie müssten „foo\\bar*“ verwenden, um das „\b“ zu vermeiden
wird einfach zu „b“.
o Wenn das Muster ein / (das nachfolgende / nicht mitgezählt) oder ein „**“ enthält, dann ist es das
mit dem vollständigen Pfadnamen abgeglichen, einschließlich aller führenden Verzeichnisse. Wenn die
Wenn das Muster weder ein / noch ein „**“ enthält, wird es nur mit dem endgültigen abgeglichen
Bestandteil des Dateinamens. (Denken Sie daran, dass der Algorithmus rekursiv angewendet wird
„vollständiger Dateiname“ kann tatsächlich ein beliebiger Teil eines Pfads vom Startverzeichnis sein
auf unten.)
oa am Ende von „dir_name/***“ stimmt mit dem Verzeichnis überein (als ob „dir_name/“ gewesen wäre).
angegeben) und alles im Verzeichnis (als ob „Verzeichnisname/**“ gewesen wäre
angegeben). Dieses Verhalten wurde in Version 2.6.7 hinzugefügt.
Beachten Sie, dass bei der Verwendung von - rekursiv (-r)-Option (die impliziert wird durch -a), jeden
Die Unterkomponente jedes Pfads wird von oben nach unten besucht, daher werden Einschluss-/Ausschlussmuster abgerufen
Wird rekursiv auf den vollständigen Namen jeder Unterkomponente angewendet (z. B. um „/foo/bar/baz“ einzuschließen
Unterkomponenten „/foo“ und „/foo/bar“ dürfen nicht ausgeschlossen werden). Die Ausschlussmuster eigentlich
Schließen Sie die Verzeichnisdurchlaufphase kurz, wenn rsync die zu sendenden Dateien findet. Wenn ein
Wenn das Muster ein bestimmtes übergeordnetes Verzeichnis ausschließt, kann es ein tieferes Einschlussmuster darstellen
wirkungslos, da rsync diesen ausgeschlossenen Abschnitt der Hierarchie nicht durchlaufen hat.
Dies ist besonders wichtig, wenn eine nachgestellte „*“-Regel verwendet wird. Dies wird zum Beispiel nicht der Fall sein
Arbeit:
+ /some/path/this-file-will-not-be-found
+ /file-is-included
- *
Dies schlägt fehl, weil das übergeordnete Verzeichnis „some“ durch die „*“-Regel ausgeschlossen ist, also nie rsync
besucht eine der Dateien in den Verzeichnissen „some“ oder „some/path“. Eine Lösung besteht darin, zu fragen
um alle Verzeichnisse in der Hierarchie einzubeziehen, indem Sie eine einzige Regel verwenden: „+ */“ (setzen Sie es
irgendwo vor der „-*“-Regel) und verwenden Sie vielleicht die --prune-empty-dirs Möglichkeit. Ein anderer
Die Lösung besteht darin, spezifische Einschlussregeln für alle übergeordneten Verzeichnisse hinzuzufügen, die besucht werden müssen.
Dieses Regelwerk funktioniert beispielsweise gut:
+ /einige/
+ /some/path/
+ /some/path/this-file-is-found
+ /file-also-included
- *
Hier sind einige Beispiele für den Ausschluss-/Einschluss-Abgleich:
o „- *.o“ würde alle Namen ausschließen, die mit *.o übereinstimmen
o „- /foo“ würde eine Datei (oder ein Verzeichnis) namens foo im Übertragungsstammverzeichnis ausschließen
Verzeichnis
o „-foo/“ würde jedes Verzeichnis mit dem Namen foo ausschließen
o „- /foo/*/bar“ würde jede Datei mit dem Namen bar ausschließen, die sich zwei Ebenen unter a befindet
Verzeichnis mit dem Namen foo im Transfer-Root-Verzeichnis
o „- /foo/**/bar“ würde jede Datei mit dem Namen bar zwei oder mehr Ebenen unter a ausschließen
Verzeichnis mit dem Namen foo im Transfer-Root-Verzeichnis
o Die Kombination aus „+ */“, „+ *.c“ und „- *“ würde alle Verzeichnisse und C einschließen
Quelldateien, aber sonst nichts (siehe auch die --prune-empty-dirs Option)
o Die Kombination aus „+ foo/“, „+ foo/bar.c“ und „- *“ würde nur foo umfassen
Verzeichnis und foo/bar.c (das foo-Verzeichnis muss explizit eingeschlossen werden, sonst würde es passieren).
durch das „*“ ausgeschlossen werden)
Die folgenden Modifikatoren werden nach einem „+“ oder „-“ akzeptiert:
die a / Gibt an, dass die Einschluss-/Ausschlussregel mit dem Absoluten abgeglichen werden soll
Pfadname des aktuellen Elements. Zum Beispiel, "-/ / etc / passwd" würde das ausschließen
passwd-Datei jedes Mal, wenn bei der Übertragung Dateien von „/ Etc" Verzeichnis und
„-/subdir/foo“ würde „foo“ immer ausschließen, wenn es sich in einem Verzeichnis namens „subdir“ befindet, sogar
wenn „foo“ im Stammverzeichnis der aktuellen Übertragung steht.
die a ! Gibt an, dass das Einschließen/Ausschließen wirksam werden soll, wenn das Muster fehlschlägt
übereinstimmen. Beispielsweise würde „-! */“ alle Nichtverzeichnisse ausschließen.
die a C wird verwendet, um anzugeben, dass alle globalen CVS-Ausschlussregeln als eingefügt werden sollen
schließt anstelle des „-C“ aus. Es sollte kein Argument folgen.
o Ein s wird verwendet, um anzuzeigen, dass die Regel für die sendende Seite gilt. Wenn eine Regel
wirkt sich auf die sendende Seite aus und verhindert die Übertragung von Dateien. Die Standardeinstellung ist
damit eine Regel beide Seiten betrifft, es sei denn --löschen-ausgeschlossen wurde angegeben, in dem
Die Standardregeln für Groß- und Kleinschreibung gelten nur noch absenderseitig. Siehe auch das Verstecken (H) und das Zeigen (S)
Regeln, die eine alternative Möglichkeit zum Festlegen von Ein-/Ausschlüssen auf der Senderseite darstellen.
o Ein r wird verwendet, um anzuzeigen, dass die Regel für die empfangende Seite gilt. Wenn eine Regel
wirkt sich auf die Empfangsseite aus und verhindert das Löschen von Dateien. Siehe die s
Modifikator für weitere Informationen. Siehe auch die Protect- (P) und Risk-Regeln (R).
Alternative Möglichkeit, empfängerseitige Einschlüsse/Ausschlüsse anzugeben.
die a p zeigt an, dass eine Regel vergänglich ist, was bedeutet, dass sie in Verzeichnissen ignoriert wird
die gelöscht werden. Zum Beispiel die -C Standardregeln der Option, die ausschließen
Dinge wie „CVS“ und „*.o“ werden als verderblich markiert und verhindern nicht, dass ein
Verhindern Sie, dass das Verzeichnis, das auf der Quelle entfernt wurde, auf dem Ziel gelöscht wird.
MERGE-DATEI FILTER REGELN
Sie können ganze Dateien in Ihren Filterregeln zusammenführen, indem Sie entweder eine Zusammenführung (.) oder eine angeben
dir-merge (:) Filterregel (wie im Abschnitt FILTERREGELN oben eingeführt).
Es gibt zwei Arten zusammengeführter Dateien: einzelne Instanzen ('.') und verzeichnisspezifische Dateien (':'). A
Die Zusammenführungsdatei einer einzelnen Instanz wird einmal gelesen und ihre Regeln werden in die integriert
Filterliste anstelle des „.“ Regel. Für verzeichnisspezifische Zusammenführungsdateien führt rsync einen Scan durch
jedes Verzeichnis, das es für die benannte Datei durchläuft, und führt seinen Inhalt zusammen, wenn die Datei
existiert in der aktuellen Liste der geerbten Regeln. Diese verzeichnisspezifischen Regeldateien müssen vorhanden sein
auf der sendenden Seite erstellt, da die sendende Seite nach gescannt wird
verfügbare Dateien zur Übertragung. Eventuell müssen diese Regeldateien auch auf die übertragen werden
Empfängerseite, wenn Sie möchten, dass sie beeinflussen, welche Dateien nicht gelöscht werden (siehe PRO-DIRECTORY
REGELN UND LÖSCHEN unten).
Einige Beispiele:
/etc/rsync/default.rules zusammenführen
. /etc/rsync/default.rules
dir-merge .per-dir-filter
dir-merge,n- .non-inherited-per-dir-excludes
:n- .non-inherited-per-dir-excludes
Die folgenden Modifikatoren werden nach einer Merge- oder Dir-Merge-Regel akzeptiert:
die a - Gibt an, dass die Datei nur aus Ausschlussmustern bestehen soll und keine anderen
Regelparsing mit Ausnahme von Kommentaren in der Datei.
die a + Gibt an, dass die Datei nur aus Include-Mustern bestehen soll und keine anderen
Regelparsing mit Ausnahme von Kommentaren in der Datei.
die a C ist eine Möglichkeit anzugeben, dass die Datei auf CVS-kompatible Weise gelesen werden soll.
Dadurch werden „n“, „w“ und „-“ aktiviert, aber auch das Listenlösch-Token (!) kann aktiviert werden
angegeben. Wenn kein Dateiname angegeben wird, wird „.cvsignore“ angenommen.
die a e schließt den Namen der Zusammenführungsdatei von der Übertragung aus; zB „dir-merge,e .rules“
ist wie „dir-merge .rules“ und „- .rules“.
o Ein n Gibt an, dass die Regeln nicht von Unterverzeichnissen geerbt werden.
die a w Gibt an, dass die Regeln anstelle des Normalen auf Leerzeichen wortgetrennt sind
Zeilenaufteilung. Dadurch werden auch Kommentare deaktiviert. Hinweis: Der Raum, der die trennt
Das Präfix der Regel wird speziell behandelt, sodass „- foo + bar“ als zwei Regeln geparst wird
(vorausgesetzt, dass das Präfix-Parsing nicht ebenfalls deaktiviert war).
o Sie können der Reihe nach auch beliebige Modifikatoren für die „+“- oder „-“-Regeln (oben) angeben
Damit die aus der Datei eingelesenen Regeln standardmäßig diesen Modifikator haben
eingestellt (mit Ausnahme der ! Modifikator, der nicht nützlich wäre). Zum Beispiel,
„merge,-/ .excl“ würde den Inhalt von .excl als absoluten Pfad ausschließen, while behandeln
„dir-merge,s .filt“ und „:sC“ würden jeweils alle ihre Regeln pro Verzeichnis anwenden
nur auf der sendenden Seite. Wenn die Zusammenführungsregel die zu beeinflussenden Seiten angibt (über s
or r Modifikator oder beides), dann dürfen die Regeln in der Datei keine Seiten angeben (über a
Modifikator oder ein Regelpräfix wie z verstecken).
Verzeichnisspezifische Regeln werden in allen Unterverzeichnissen des Verzeichnisses vererbt, in dem sich die befinden
Die Zusammenführungsdatei wurde gefunden, es sei denn, der Modifikator „n“ wurde verwendet. Die Regeln jedes Unterverzeichnisses sind
wird den von den übergeordneten Verzeichnissen geerbten verzeichnisspezifischen Regeln vorangestellt, was die neuesten ergibt
Regeln haben eine höhere Priorität als die geerbten Regeln. Der gesamte Satz von Verzeichniszusammenführungsregeln ist
werden an der Stelle gruppiert, an der die Zusammenführungsdatei angegeben wurde, sodass dies möglich ist
Überschreiben Sie die Verzeichniszusammenführungsregeln über eine Regel, die zuvor in der globalen Liste angegeben wurde
Regeln. Wenn die Listenlöschregel („!“) aus einer verzeichnisbezogenen Datei gelesen wird, gilt dies nur
löscht die geerbten Regeln für die aktuelle Zusammenführungsdatei.
Eine andere Möglichkeit, die Vererbung einer einzelnen Regel aus einer Verzeichniszusammenführungsdatei zu verhindern, besteht darin, Folgendes zu tun:
Verankern Sie es mit einem führenden Schrägstrich. Verankerte Regeln in einer verzeichnisspezifischen Zusammenführungsdatei sind relativ
in das Verzeichnis der Zusammenführungsdatei, sodass ein Muster „/foo“ nur mit der Datei „foo“ in der Datei übereinstimmt
Verzeichnis, in dem die Dir-Merge-Filterdatei gefunden wurde.
Hier ist eine Beispielfilterdatei, die Sie über angeben würden --filter=". Datei":
/home/user/.global-filter zusammenführen
- *.gz
dir-merge .rules
+ *.[ch]
- *.Ö
Dadurch wird der Inhalt der Datei /home/user/.global-filter am Anfang des zusammengeführt
Liste und wandelt auch den Dateinamen „.rules“ in eine verzeichnisspezifische Filterdatei um. Alle Regeln
Beim Einlesen vor Beginn des Verzeichnisscans gelten die globalen Verankerungsregeln (z. B. a
führender Schrägstrich entspricht der Wurzel der Übertragung).
Wenn eine verzeichnisspezifische Zusammenführungsdatei mit einem Pfad angegeben wird, der ein übergeordnetes Verzeichnis von ist
Als erstes Übertragungsverzeichnis scannt rsync alle übergeordneten Verzeichnisse von diesem Startpunkt bis
das Übertragungsverzeichnis für die angegebene verzeichnisspezifische Datei. Hier ist zum Beispiel ein
gemeinsamer Filter (siehe -F):
--filter=': /.rsync-filter'
Diese Regel weist rsync an, in allen Verzeichnissen vom Stammverzeichnis aus nach der Datei .rsync-filter zu suchen
Durchsuchen Sie das übergeordnete Verzeichnis der Übertragung vor dem normalen Start
Verzeichnisscan der Datei in den Verzeichnissen, die im Rahmen der Übertragung gesendet werden.
(Hinweis: Bei einem rsync-Daemon ist das Stammverzeichnis immer dasselbe wie der „Pfad“ des Moduls.)
Einige Beispiele für diese Vorabprüfung nach verzeichnisbezogenen Dateien:
rsync -avF /src/path/ /dest/dir
rsync -av --filter=': ../../.rsync-filter' /src/path/ /dest/dir
rsync -av --filter=': .rsync-filter' /src/path/ /dest/dir
Die ersten beiden Befehle oben suchen nach „.rsync-filter“ in „/“ und „/src“ vor dem
Der normale Scan beginnt mit der Suche nach der Datei in „/src/path“ und seinen Unterverzeichnissen. Das Letzte
Der Befehl vermeidet den Scan des übergeordneten Verzeichnisses und sucht jeweils nur nach den „.rsync-filter“-Dateien
Verzeichnis, das Teil der Übertragung ist.
Wenn Sie den Inhalt einer „.cvsignore“ in Ihre Muster einbinden möchten, sollten Sie die verwenden
Regel „:C“, die eine Verzeichniszusammenführung der .cvsignore-Datei erstellt, jedoch in a analysiert
CVS-kompatible Weise. Sie können damit beeinflussen, wo die --cvs-exclude (-C) Optionen
Die Aufnahme der verzeichnisspezifischen .cvsignore-Datei wird in Ihre Regeln eingefügt, indem Sie Folgendes einfügen
Fügen Sie „:C“ an einer beliebigen Stelle in Ihren Filterregeln ein. Ohne dies würde rsync die Verzeichniszusammenführung hinzufügen
Regel für die .cvsignore-Datei am Ende aller Ihrer anderen Regeln (geben Sie ihr einen niedrigeren Wert).
Priorität haben als Ihre Befehlszeilenregeln). Zum Beispiel:
Katze <
+ foo.o
:C
- *.alt
EOT
rsync -avC --include=foo.o -f :C --exclude='*.old' a/ b
Beide oben genannten rsync-Befehle sind identisch. Jeder einzelne führt alle Verzeichnisse zusammen
.cvsignore regiert in der Mitte der Liste und nicht am Ende. Dies ermöglicht ihnen
dirspezifische Regeln, um die Regeln zu ersetzen, die dem :C folgen, anstatt untergeordnet zu sein
zu all deinen Regeln. Um die anderen CVS-Ausschlussregeln zu beeinflussen (d. h. die Standardliste von
Ausschlüsse, der Inhalt von $HOME/.cvsignore und der Wert von $CVSIGNORE) sollten Sie weglassen
die -C Befehlszeilenoption und fügen Sie stattdessen eine „-C“-Regel in Ihre Filterregeln ein; z.B
"--filter=-C".
LÖSCHEN DER LISTEN FILTER REGEL
Sie können die aktuelle Einschluss-/Ausschlussliste löschen, indem Sie das „!“ verwenden. Filterregel (wie eingeführt
im Abschnitt FILTERREGELN oben). Die „aktuelle“ Liste ist entweder die globale Regelliste
(wenn die Regel beim Parsen der Filteroptionen angetroffen wird) oder eine Reihe von Verzeichnissen
Regeln (die in ihrer eigenen Unterliste vererbt werden, sodass ein Unterverzeichnis diese zum Löschen verwenden kann
die Regeln der Eltern auslesen).
VERANKERUNG UMFASSEN AUSSCHLIESSEN PATTERNS
Wie bereits erwähnt, sind globale Einschluss-/Ausschlussmuster im „Stammverzeichnis“ verankert
transfer" (im Gegensatz zu Mustern pro Verzeichnis, die in der Zusammenführungsdatei verankert sind).
Verzeichnis). Wenn Sie sich die Übertragung als einen Teilbaum der Namen vorstellen, von denen gesendet wird
Sender zum Empfänger, die Übertragungswurzel ist der Ort, an dem die Duplizierung des Baums beginnt
Zielverzeichnis. Dieser Stamm legt fest, wo Muster, die mit einem / beginnen, übereinstimmen.
Da der Abgleich relativ zum Übertragungsstamm erfolgt, ändert sich der abschließende Schrägstrich auf a
Quellpfad oder ändern Sie Ihre Verwendung des --relativ Die Option beeinflusst den Pfad, den Sie verwenden müssen
in Ihrem Abgleich (zusätzlich zur Änderung, wie viel des Dateibaums auf dem dupliziert wird
Zielhost). Die folgenden Beispiele zeigen dies.
Nehmen wir an, wir möchten zwei Quelldateien abgleichen, eine mit einem absoluten Pfad von
„/home/me/foo/bar“ und eines mit dem Pfad „/home/you/bar/baz“. Hier erfahren Sie, wie die verschiedenen
Die Befehlsauswahl unterscheidet sich bei einer 2-Quellen-Übertragung:
Beispiel-cmd: rsync -a /home/me /home/you /dest
+/- Muster: /me/foo/bar
+/- Muster: /you/bar/baz
Zieldatei: /dest/me/foo/bar
Zieldatei: /dest/you/bar/baz
Beispiel-cmd: rsync -a /home/me/ /home/you/ /dest
+/- Muster: /foo/bar (Anmerkung: „me“ fehlt)
+/- Muster: /bar/baz (Anmerkung: „you“ fehlt)
Zieldatei: /dest/foo/bar
Zieldatei: /dest/bar/baz
Beispiel-cmd: rsync -a --relative /home/me/ /home/you /dest
+/- Muster: /home/me/foo/bar (vollständigen Pfad beachten)
+/- Muster: /home/you/bar/baz (dito)
Zieldatei: /dest/home/me/foo/bar
Zieldatei: /dest/home/you/bar/baz
Beispiel cmd: cd / Home; rsync -a --relative me/foo you/ /dest
+/- Muster: /me/foo/bar (beginnt am angegebenen Pfad)
+/- Muster: /you/bar/baz (dito)
Zieldatei: /dest/me/foo/bar
Zieldatei: /dest/you/bar/baz
Der einfachste Weg, herauszufinden, welchen Namen Sie filtern sollten, besteht darin, sich die Ausgabe wann anzusehen
mit automatisierten - ausführlich und setzen Sie ein / vor den Namen (verwenden Sie das --Probelauf Option, wenn nicht
noch bereit zum Kopieren von Dateien).
PRO VERZEICHNIS REGELN UND LÖSCHEN
Ohne eine Löschoption sind verzeichnisspezifische Regeln nur auf der Absenderseite, also für Sie, relevant
Sie können die Zusammenführungsdateien selbst gerne ausschließen, ohne die Übertragung zu beeinträchtigen. Zu
Um dies zu vereinfachen, fügt der Modifikator „e“ diesen Ausschluss für Sie hinzu, wie in diesen beiden zu sehen ist
äquivalente Befehle:
rsync -av --filter=': .excl' --exclude=.excl host:src/dir /dest
rsync -av --filter=':e .excl' host:src/dir /dest
Wenn Sie jedoch auf der Empfängerseite eine Löschung durchführen möchten UND möchten, dass einige Dateien gelöscht werden
vom Löschen ausgeschlossen werden, müssen Sie sicherstellen, dass die empfangende Seite weiß, was
Dateien, die ausgeschlossen werden sollen. Der einfachste Weg besteht darin, die verzeichnisspezifischen Zusammenführungsdateien in die einzuschließen
übertragen und verwenden --delete-after, denn dadurch wird sichergestellt, dass die empfangende Seite alles bekommt
Dieselben Ausschlussregeln wie auf der sendenden Seite, bevor versucht wird, etwas zu löschen:
rsync -avF --delete-after host:src/dir /dest
Wenn die Zusammenführungsdateien jedoch nicht Teil der Übertragung sind, müssen Sie eines der beiden angeben
Einige globale Ausschlussregeln (z. B. in der Befehlszeile angegeben) oder Sie müssen diese beibehalten
Ihre eigenen verzeichnisspezifischen Zusammenführungsdateien auf der Empfängerseite. Ein Beispiel für das erste ist dieses
(Angenommen, die entfernten .rules-Dateien schließen sich selbst aus):
rsync -av --filter=': .rules' --filter='. /my/extra.rules'
--delete host:src/dir /dest
Im obigen Beispiel kann sich die Datei extra.rules auf beide Seiten der Übertragung auswirken, aber (auf
auf der sendenden Seite) unterliegen die Regeln den aus den .rules-Dateien zusammengeführten Regeln
weil sie nach der verzeichnisspezifischen Zusammenführungsregel angegeben wurden.
In einem letzten Beispiel schließt die Remote-Seite die .rsync-filter-Dateien aus
übertragen, aber wir möchten unsere eigenen .rsync-Filterdateien verwenden, um zu steuern, was gelöscht wird
die Empfangsseite. Dazu müssen wir die verzeichnisspezifischen Zusammenführungsdateien ausdrücklich ausschließen
(damit sie nicht gelöscht werden) und fügen Sie dann Regeln in die lokalen Dateien ein, um zu steuern, was
Sonst sollte nicht gelöscht werden. Wie einer dieser Befehle:
rsync -av --filter=':e /.rsync-filter' --delete \
host:src/dir /dest
rsync -avFF --delete host:src/dir /dest
STAPEL MODUS
Der Batch-Modus kann verwendet werden, um denselben Aktualisierungssatz auf viele identische Systeme anzuwenden. Vermuten
man hat einen Baum, der auf mehreren Hosts repliziert wird. Nehmen wir nun an, dass sich einige Änderungen ergeben haben
Es wurden Änderungen an diesem Quellbaum vorgenommen und diese Änderungen müssen an die anderen Hosts weitergegeben werden.
Um dies im Batch-Modus zu tun, wird rsync mit der anzuwendenden Option write-batch ausgeführt
Die am Quellbaum vorgenommenen Änderungen werden an einen der Zielbäume übertragen. Der Schreibstapel
Die Option bewirkt, dass der rsync-Client alle dafür erforderlichen Informationen in einer „Batchdatei“ speichert
Wiederholen Sie diesen Vorgang für andere, identische Zielbäume.
Durch die einmalige Generierung der Batch-Datei erspart man sich die erneute Prüfung von Dateistatus, Prüfsumme und Daten
Blockgenerierung mehr als einmal, wenn mehrere Zielbäume aktualisiert werden. Multicast
Transportprotokolle können verwendet werden, um die Batch-Update-Dateien parallel an viele zu übertragen
Hosts auf einmal, anstatt die gleichen Daten an jeden Host einzeln zu senden.
Um die aufgezeichneten Änderungen auf einen anderen Zielbaum anzuwenden, führen Sie rsync mit dem Lesebatch aus
Option, die den Namen derselben Batchdatei und den Zielbaum angibt. Rsync
Aktualisiert den Zielbaum mithilfe der in der Batchdatei gespeicherten Informationen.
Zur Vereinfachung wird auch eine Skriptdatei erstellt, wenn die Option „write-batch“ verwendet wird:
Sie erhält den gleichen Namen wie die Batchdatei mit dem angehängten „.sh“. Diese Skriptdatei
enthält eine Befehlszeile, die zum Aktualisieren eines Zielbaums mithilfe der zugehörigen Befehlszeile geeignet ist
Batchdatei. Es kann mit einer Bourne-Shell (oder einer Bourne-ähnlichen Shell) ausgeführt werden, optional mit Übergabe
in einem alternativen Zielbaumpfadnamen, der dann anstelle des Originals verwendet wird
Weg zum Ziel. Dies ist nützlich, wenn der Zielbaumpfad auf dem aktuellen Host liegt
unterscheidet sich von dem, der zum Erstellen der Batchdatei verwendet wurde.
Beispiele:
$ rsync --write-batch=foo -a host:/source/dir/ /adest/dir/
$ scp foo* remote:
$ ssh remote ./foo.sh /bdest/dir/
$ rsync --write-batch=foo -a /source/dir/ /adest/dir/
$ ssh remote rsync --read-batch=- -a /bdest/dir/
In diesen Beispielen wird rsync verwendet, um /adest/dir/ von /source/dir/ zu aktualisieren
Informationen zur Wiederholung dieses Vorgangs werden in „foo“ und „foo.sh“ gespeichert. Der Host „remote“
wird dann mit den Batch-Daten aktualisiert, die in das Verzeichnis /bdest/dir verschoben werden. Der
Die Unterschiede zwischen den beiden Beispielen zeigen, wie flexibel Sie sind
Umgang mit Chargen:
o Das erste Beispiel zeigt, dass die ursprüngliche Kopie nicht lokal sein muss – das ist möglich
Pushen oder Abrufen von Daten zu/von einem Remote-Host mithilfe der Remote-Shell-Syntax oder
rsync-Daemon-Syntax nach Bedarf.
o Das erste Beispiel verwendet die erstellte Datei „foo.sh“, um die richtigen rsync-Optionen zu erhalten
wenn der Befehl read-batch auf dem Remote-Host ausgeführt wird.
o Das zweite Beispiel liest die Batch-Daten über die Standardeingabe, sodass die Batch-Datei
muss nicht zuerst auf den Remote-Computer kopiert werden. Dieses Beispiel vermeidet das
foo.sh-Skript, da ein geändertes Skript verwendet werden musste --read-batch Option, aber Sie
Sie könnten die Skriptdatei bearbeiten, wenn Sie sie nutzen möchten (stellen Sie nur sicher, dass nein
Eine andere Möglichkeit besteht darin, die Standardeingabe zu verwenden, z. B. „--exclude-from=-"
Möglichkeit).
Vorsichtsmaßnahmen:
Die Option „read-batch“ erwartet, dass der Zielbaum, mit dem sie aktualisiert wird, identisch ist
der Zielbaum, der zum Erstellen des Batch-Update-Dateisatzes verwendet wurde. Wenn ein Unterschied
Wenn zwischen den Zielbäumen ein Fehler auftritt, wird das Update möglicherweise mit einer Warnung verworfen
(wenn die Datei bereits aktuell zu sein scheint) oder es kann versucht werden, die Datei zu aktualisieren
Wenn die Datei dann nicht überprüft werden kann, wird das Update mit einem Fehler verworfen. Das bedeutet, dass es
Es sollte sicher sein, einen Lese-Batch-Vorgang erneut auszuführen, wenn der Befehl unterbrochen wurde. Wenn du
Sie möchten erzwingen, dass die Batch-Aktualisierung immer versucht wird, unabhängig von der Dateigröße und
Datum, verwenden Sie die -I Option (beim Lesen des Stapels). Wenn ein Fehler auftritt, das Ziel
Der Baum wird wahrscheinlich in einem teilweise aktualisierten Zustand sein. In diesem Fall kann rsync verwendet werden
Normaler (nicht stapelweiser) Betriebsmodus zum Korrigieren des Zielbaums.
Die auf allen Zielen verwendete rsync-Version muss mindestens so neu sein wie die frühere
Generieren Sie die Batchdatei. Rsync bricht mit einem Fehler ab, wenn die Protokollversion im
Die Batch-Datei ist zu neu, als dass der Batch-lesende Rsync sie verarbeiten könnte. Siehe auch die --Protokoll
Option für eine Möglichkeit, dass der erstellende rsync eine Batchdatei generiert, die ein älterer rsync kann
verstehen. (Beachten Sie, dass sich in Version 2.6.3 das Format von Batchdateien geändert hat, sodass Versionen gemischt wurden
ältere Versionen mit neueren Versionen funktionieren nicht.)
Beim Lesen einer Batchdatei erzwingt rsync, dass der Wert bestimmter Optionen mit den Daten übereinstimmt
in der Batch-Datei, wenn Sie sie nicht auf die gleichen Werte wie den Batch-Schreibbefehl gesetzt haben. Andere
Optionen können (und sollten) geändert werden. Zum Beispiel --write-batch ändert sich zu --read-batch,
--Dateien-von wird gelöscht, und die --Filter/--enthalten/--ausschließen Optionen werden nicht benötigt
es sei denn einer der --löschen Optionen angegeben ist.
Der Code, der die BATCH.sh-Datei erstellt, wandelt alle Filter-/Einschluss-/Ausschlussoptionen in um
eine einzelne Liste, die als „hier“-Dokument an die Shell-Skriptdatei angehängt wird. Ein Fortgeschrittener
Der Benutzer kann dies verwenden, um die Ausschlussliste zu ändern, wenn eine Änderung in dem, was gelöscht wird, erfolgt --löschen
ist erwünscht. Ein normaler Benutzer kann dieses Detail ignorieren und einfach das Shell-Skript verwenden
Möglichkeit, das entsprechende auszuführen --read-batch Befehl für die gestapelten Daten.
Der ursprüngliche Batch-Modus in rsync basierte auf „rsync+“, aber die neueste Version verwendet einen neuen
Umsetzung.
SYMBOLISCH Verbindet
Drei grundlegende Verhaltensweisen sind möglich, wenn rsync in der Quelle auf einen symbolischen Link stößt
Verzeichnis.
Standardmäßig werden symbolische Links überhaupt nicht übertragen. Eine Meldung „Unregelmäßig überspringen“
Die Datei wird für alle vorhandenen Symlinks ausgegeben.
If - Links angegeben ist, werden Symlinks mit demselben Ziel auf dem neu erstellt
Ziel. Beachten Sie, dass --Archiv impliziert - Links.
If --copy-links angegeben ist, werden symbolische Links durch Kopieren ihres Referenten „komprimiert“.
anstelle des Symlinks.
Rsync kann auch „sichere“ und „unsichere“ symbolische Links unterscheiden. Ein Beispiel, wo dies
Möglicherweise wird ein Website-Spiegel verwendet, der sicherstellen möchte, dass das Rsync-Modul vorhanden ist
kopiert enthält keine symbolischen Links zu / etc / passwd im öffentlichen Bereich der Website.
Die richtigen --copy-unsafe-links führt dazu, dass alle Links als die Datei kopiert werden, auf die sie verweisen
das Ziel. Benutzen --safe-links führt dazu, dass unsichere Links gänzlich weggelassen werden.
(Beachten Sie, dass Sie angeben müssen - Links für --safe-links irgendeine Wirkung haben.)
Symbolische Links gelten als unsicher, wenn es sich um absolute Symlinks handelt (beginnen mit /), leer,
oder wenn sie genügend „..“-Komponenten enthalten, um aus dem kopierten Verzeichnis aufzusteigen.
Hier ist eine Zusammenfassung, wie die Symlink-Optionen interpretiert werden. Die Liste ist in der Reihenfolge von
Vorrang haben. Wenn Ihre Optionskombination also nicht erwähnt wird, verwenden Sie die erste Zeile
eine vollständige Teilmenge Ihrer Optionen:
--copy-links
Wandeln Sie alle symbolischen Links in normale Dateien um (lassen Sie keine symbolischen Links für andere Optionen übrig).
beeinflussen).
- Links --copy-unsafe-links
Wandeln Sie alle unsicheren Symlinks in Dateien um und duplizieren Sie alle sicheren Symlinks.
--copy-unsafe-links
Verwandeln Sie alle unsicheren Symlinks in Dateien und überspringen Sie lautstark alle sicheren Symlinks.
- Links --safe-links
Duplizieren Sie sichere Symlinks und überspringen Sie unsichere.
- Links
Duplizieren Sie alle Symlinks.
DIAGNOSE
rsync erzeugt gelegentlich Fehlermeldungen, die vielleicht etwas kryptisch wirken. Der eine der
Die größte Verwirrung scheint die Frage „Nichtübereinstimmung der Protokollversion – ist Ihre Shell sauber?“ zu verursachen.
Diese Meldung wird normalerweise durch die Erstellung Ihrer Startskripts oder der Remote-Shell-Funktion verursacht
unerwünschter Müll auf dem Stream, den rsync für seinen Transport verwendet. Der Weg zur Diagnose
Dieses Problem besteht darin, Ihre Remote-Shell wie folgt auszuführen:
ssh remotehost /bin/wahr > out.dat
Dann schauen Sie sich out.dat an. Wenn alles korrekt funktioniert, sollte out.dat eine Null sein
Längendatei. Wenn Sie den oben genannten Fehler von rsync erhalten, werden Sie ihn wahrscheinlich finden
dass out.dat Text oder Daten enthält. Schauen Sie sich den Inhalt an und versuchen Sie herauszufinden, was ist
es zu produzieren. Die häufigste Ursache sind falsch konfigurierte Shell-Startskripte (z. B
als .cshrc oder .profile), die Ausgabeanweisungen für nicht interaktive Anmeldungen enthalten.
Wenn Sie Probleme beim Debuggen von Filtermustern haben, versuchen Sie es mit der Angabe -vv .
Auf dieser Ausführlichkeitsebene zeigt rsync, warum jede einzelne Datei enthalten ist oder
ausgeschlossen.
EXIT WERTE
0 Erfolg
1 Syntax- oder Verwendungsfehler
2 Protokollinkompatibilität
3 Fehler beim Auswählen von Eingabe-/Ausgabedateien und Verzeichnissen
4 Angeforderte Aktion wird nicht unterstützt: Es wurde versucht, 64-Bit-Dateien auf einem zu manipulieren
Plattform, die sie nicht unterstützen kann; oder es wurde eine Option angegeben, die von unterstützt wird
vom Client und nicht vom Server.
5 Fehler beim Starten des Client-Server-Protokolls
6 Daemon kann keine Datei an die Protokolldatei anhängen
10 Fehler im Socket-I/O
11 Fehler bei der Datei-E/A
12 Fehler im Datenstrom des Rsync-Protokolls
13 Fehler bei der Programmdiagnose
14 Fehler im IPC-Code
20 SIGUSR1 oder SIGINT empfangen
21 Ein von waitpid() zurückgegebener Fehler
22 Fehler beim Zuweisen von Kernspeicherpuffern
23 Teilweise Übertragung aufgrund eines Fehlers
24 Teilweise Übertragung aufgrund verschwundener Quelldateien
25 Das Limit --max-delete hat das Löschen gestoppt
30 Zeitüberschreitung beim Senden/Empfangen von Daten
35 Zeitüberschreitung beim Warten auf Daemon-Verbindung
VARIABLEN
CVSIGNORE
Die Umgebungsvariable CVSIGNORE ergänzt alle Ignoriermuster in .cvsignore
Dateien. Siehe die --cvs-exclude Option für weitere Details.
RSYNC_ICONV
Geben Sie einen Standardwert an --iconv Einstellung mithilfe dieser Umgebungsvariablen. (Zuerst unterstützt
in 3.0.0.)
RSYNC_PROTECT_ARGS
Geben Sie bei Bedarf einen numerischen Wert ungleich Null an --protect-args Option zu sein
standardmäßig aktiviert ist, oder einen Nullwert, um sicherzustellen, dass es standardmäßig deaktiviert ist.
(Zuerst unterstützt in 3.1.0.)
RSYNC_RSH
Mit der Umgebungsvariablen RSYNC_RSH können Sie die Standard-Shell überschreiben, die als verwendet wird
der Transport für rsync. Nach dem Befehl sind Befehlszeilenoptionen zulässig
Name, genau wie in der -e .
RSYNC_PROXY
Mit der Umgebungsvariablen RSYNC_PROXY können Sie Ihren rsync-Client umleiten
Verwenden Sie einen Web-Proxy, wenn Sie eine Verbindung zu einem Rsync-Daemon herstellen. Sie sollten RSYNC_PROXY auf a setzen
Hostname:Port-Paar.
RSYNC_PASSWORD
Wenn Sie RSYNC_PASSWORD auf das erforderliche Passwort festlegen, können Sie authentifiziert ausführen
rsync-Verbindungen zu einem rsync-Daemon ohne Benutzereingriff. Beachten Sie, dass dies der Fall ist
Geben Sie kein Passwort für einen Remote-Shell-Transport wie ssh an. um zu lernen, wie es geht
Weitere Informationen finden Sie in der Dokumentation der Remote-Shell.
USER or LOGNAME
Zur Bestimmung des Standardwerts werden die Umgebungsvariablen USER oder LOGNAME verwendet
Benutzername, der an einen Rsync-Daemon gesendet wird. Wenn keines von beiden festgelegt ist, wird standardmäßig der Benutzername verwendet
"niemand".
HOME Die HOME-Umgebungsvariable wird verwendet, um die standardmäßige .cvsignore-Datei des Benutzers zu finden.
Verwenden Sie rsync online über die Dienste von onworks.net