
Ich führe diesen Befehl aus, um die Identität zweier Ordner zu prüfen und alle Unterschiede in einer Protokolldatei zu speichern:
rsync -av --delete --checksum --dry-run --stats --itemize-changes --out-format='%t %i %f ' SOURCE DESTINATION | tee log.txt
Wenn zwischen den verglichenen Dateien kein Unterschied besteht, wird rsync bis zum Ende des Auftrags nichts außer Folgendem erwähnen:
Senden einer inkrementellen Dateiliste
Es wäre schön, Informationen darüber zu erhalten, wo rsync steht. Besonders, wenn Sie viele Dateien vergleichen. Ist es möglich, rsync dazu zu bringen, alle Prüfungen im Terminal auszugeben und nur die Unterschiede in der Protokolldatei zu belassen?
PS: --info=progress2
hat nicht geholfen.
Antwort1
[Ich sehe, Sie möchten eine Liste der Dateien, deren Prüfsumme rsync berechnet, während diese Prüfsummen berechnet werden. So wie ich das lese, scheint das nicht verfügbar zu sein. Ich gebe weiter unten einige allgemeinere Informationen dazu, wie rsync-Berichte im Verhältnis zu der Art und Weise, wie es den Fortschritt meldet, funktioniert, so wie ich es verstehe.]
Wenn Dateien zu übertragen sind, --info=progress1
erhalten Sie über den Schalter („Fortschritt pro Datei“) Informationen zum Fortschritt. Wenn jede Datei übertragen wird, erhalten Sie etwas, das so aussieht:
MD5SUMS.gnome
141 0% 0.00kB/s 0:00:00 (xfr#1, to-chk=11/13)
ParrotSecurity.lnk
179 0% 37.11kB/s 0:00:00 (xfr#2, to-chk=10/13)
SHA256SUMS.mate
486 0% 336.91kB/s 0:00:00 (xfr#3, to-chk=9/13)
SHA256SUMS.mate.gpg
1,419 0% 1.22MB/s 0:00:00 (xfr#4, to-chk=8/13)
SHA256SUMS.ubuntu
1,994 0% 1.77MB/s 0:00:00 (xfr#5, to-chk=7/13)
SHA256SUMS.ubuntu.gpg
2,927 0% 2.66MB/s 0:00:00 (xfr#6, to-chk=6/13)
xfer
sagt Ihnen, welche Datei übertragen wird ( xfer#6
ist die 6.), und to-chk
(sagen wir to-chk=6/13
) sagt Ihnen, dass es die 6. von 13 ist.
Beachten Sie, dass Sie dies nicht in einem erhalten, --dry-run
da nichts zu übertragen ist. (Sie können diese Ausgabe auch mit erhalten --progress
, dies ist jedoch aus der Manpage nicht klar ersichtlich und ich werde es jetzt nicht überprüfen.)
--recursive
Wenn Sie sich die Manpage ansehen , werden Sie feststellen, dass seit Version 3.0.0 rsync -r
vor dem Start einige Verzeichnisse überprüft werden und diese dann während der Übertragung weiter überprüft werden. Dies ist ein „inkrementell rekursives“ Scannen, und in diesem Fall wird ir-chk
anstelle von angezeigt to-chk
. Und der „Nenner“ in ir-chk
kann zunehmen, wenn nach und nach mehr Dateien gescannt werden.
Wenn Sie nicht verwendet haben --recursive
, wird zuerst die Prüfsumme gebildet, um alle zu übertragenden Dateien zu identifizieren, und dann werden sie einzeln übertragen. EsnichtEs scheint, dass Sie irgendeine Art Fortschrittsbericht über die Anfangsphase erhalten können, in der die Prüfsummen berechnet werden, da rsync noch nicht weiß, wie viele Dateien es geben wird oder wie groß sie sind. Ob Sie eine Liste der Dateinamen erhalten können, während ihre Prüfsummen berechnet werden, scheint mir nicht so. (Aber es könnte einen netten Trick geben, und es ist schwer, das Gegenteil zu beweisen!)