Werfen wir einen Blick auf die Funktionsweise von rsync und verstehen die kryptischen Ergebniszeilen besser:
1 - Ein großer Vorteil von rsync ist, dass es nach einer Unterbrechung beim nächsten Mal reibungslos weitergeht.
Beim nächsten rsync-Aufruf werden die bereits übertragenen Dateien nicht erneut übertragen, wenn sie in der Zwischenzeit nicht geändert wurden. Es werden jedoch von Anfang an alle Dateien erneut überprüft, um dies herauszufinden, da nicht bekannt ist, dass sie unterbrochen wurden.
2 - Jedes Zeichen ist ein Code, der übersetzt werden kann, wenn Sie den Abschnitt für -i, --itemize-changes
in lesenman rsync
Dekodieren Sie Ihre Beispielprotokolldatei aus der Frage:
> f.st ......
> - the item is received
f - it is a regular file
s - the file size is different
t - the time stamp is different
.d..t ......
. - the item is not being updated (though it might have attributes
that are being modified)
d - it is a directory
t - the time stamp is different
> f +++++++++
> - the item is received
f - a regular file
+++++++++ - this is a newly created item
Der relevante Teil der rsync-Manpage:
-i, --itemize-Änderungen
Fordert eine einfache detaillierte Liste der Änderungen an, die an jeder Datei vorgenommen werden, einschließlich Attributänderungen. Dies entspricht genau der Angabe von --out-format = '% i% n% L'. Wenn Sie die Option wiederholen, werden auch unveränderte Dateien ausgegeben, jedoch nur, wenn der empfangende Rsync mindestens Version 2.6.7 ist (Sie können -vv mit älteren Versionen von Rsync verwenden, dies aktiviert jedoch auch die Ausgabe anderer ausführlicher Nachrichten. Weise).
Das Escape "% i" hat eine kryptische Ausgabe, die 11 Buchstaben lang ist. Das allgemeine Format ähnelt der Zeichenfolge YXcstpoguax, wobei Y durch die Art der Aktualisierung ersetzt wird, X durch den Dateityp ersetzt wird und die anderen Buchstaben Attribute darstellen, die ausgegeben werden können, wenn sie geändert werden.
Die Aktualisierungstypen, die das Y ersetzen, sind wie folgt:
- A
<
bedeutet, dass eine Datei an den Remote-Host übertragen (gesendet) wird.
- EIN
>
bedeutet, dass eine Datei auf den lokalen Host übertragen wird (empfangen).
- A
c
bedeutet, dass für das Element eine lokale Änderung / Erstellung erfolgt (z. B. das Erstellen eines Verzeichnisses oder das Ändern eines Symlinks usw.).
- EIN
h
bedeutet, dass der Artikel ein fester Link zu einem anderen Artikel ist (erfordert --hard-links).
- EIN
.
bedeutet, dass das Element nicht aktualisiert wird (obwohl es möglicherweise Attribute enthält, die geändert werden).
- A
*
bedeutet, dass der Rest des Einzelausgabebereichs eine Nachricht enthält (z. B. "Löschen").
Die Dateitypen, die das X ersetzen, sind: f
für eine Datei, a d
für ein Verzeichnis, a L
für einen Symlink, a D
für ein Gerät und aS
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 aktualisiert wird, oder ein "." für keine Änderung. Drei Ausnahmen sind: (1) Ein neu erstelltes Element ersetzt jeden Buchstaben durch ein "+", (2) ein identisches Element ersetzt die Punkte durch Leerzeichen und (3) ein unbekanntes Attribut ersetzt jeden Buchstaben durch ein "?" (Dies kann passieren, wenn Sie mit einem älteren Rsync sprechen).
Das Attribut, das jedem Buchstaben zugeordnet ist, lautet wie folgt:
- EIN
c
bedeutet entweder, dass eine reguläre Datei eine andere Prüfsumme hat (erfordert --checksum) oder dass ein Symlink, ein Gerät oder eine spezielle Datei einen geänderten Wert hat. Beachten Sie, dass dieses Änderungsflag nur für reguläre Dateien mit unterschiedlichen Prüfsummen vorhanden ist, wenn Sie Dateien vor 3.0.1 an einen rsync senden.
- A
s
bedeutet, dass die Größe einer regulären Datei unterschiedlich ist und durch die Dateiübertragung aktualisiert wird.
- A
t
bedeutet, dass die Änderungszeit unterschiedlich ist und auf den Wert des Absenders aktualisiert wird (erfordert --times). Ein alternativer Wert von T bedeutet, dass die Änderungszeit auf die Übertragungszeit eingestellt wird. Dies geschieht, wenn eine Datei / ein Symlink / ein Gerät ohne --times aktualisiert wird und wenn ein Symlink geändert wird und der Empfänger seine Zeit nicht einstellen kann. (Hinweis: Wenn Sie einen rsync 3.0.0-Client verwenden, wird möglicherweise das s-Flag mit t anstelle des richtigen T-Flags für diesen Zeiteinstellungsfehler kombiniert.)
- A
p
bedeutet, dass die Berechtigungen unterschiedlich sind und auf den Wert des Absenders aktualisiert werden (erfordert --perms).
- Ein
o
bedeutet, dass der Eigentümer anders ist und auf den Wert des Absenders aktualisiert wird (erfordert - Eigentümer- und Superuser-Berechtigungen).
- A
g
bedeutet, dass die Gruppe unterschiedlich ist und auf den Wert des Absenders aktualisiert wird (erfordert --group und die Berechtigung zum Festlegen der Gruppe).
- Der
u
Steckplatz ist für die zukünftige Verwendung reserviert.
- Die
a
bedeutet , dass die ACL - Informationen geändert.
- Dies
x
bedeutet, dass sich die erweiterten Attributinformationen geändert haben.
Eine weitere Ausgabe ist möglich: Beim Löschen von Dateien gibt "% i" für jedes Element, das entfernt wird, die Zeichenfolge "* deleting" aus (vorausgesetzt, Sie sprechen mit einem ausreichend aktuellen rsync, um Löschvorgänge zu protokollieren, anstatt sie als auszugeben eine ausführliche Nachricht).