2009-12-15 18 views
6

Wenn rsync die Details der Datei für jede Datei ausgibt (mit einem der ausführlichen Flags), scheint es sowohl aktualisierte Dateien als auch Dateien zu enthalten, die nicht aktualisiert wurden. Zum Beispiel ein Ausschnitt aus meiner Ausgabe der -v Flag verwendet sieht wie folgt aus:Nur rsync-Berichtsdateien anzeigen, die aktualisiert wurden

rforms.php is uptodate 
robots.txt is uptodate 
sorry.html 
thankyou.html is uptodate 

Ich bin nur daran interessiert, über die Dateien, die aktualisiert wurden. Im obigen Fall ist das sorry.html. Es gibt auch Verzeichnisnamen aus, wenn sie eingegeben werden, auch wenn sich in diesem Verzeichnis keine Datei befindet, die aktualisiert wird. Gibt es eine Möglichkeit, aktuelle Dateien und Verzeichnisse ohne aktualisierte Dateien aus dieser Ausgabe herauszufiltern?

Antwort

4

Sie können über die Pipeline es durch grep:

rsync -vv (your other rsync options here) | grep -v 'uptodate' 
+0

Auf lange laufenden Dateien werden Sie keinen Fortschritt erhalten, da grep nicht interaktiv ist. – srigi

+0

funktioniert nicht für Version> = 3.0.7 (siehe http://serverfault.com/questions/401210/rsync-report-only-uploaded-files#comment418372_401215) –

+1

Ich möchte korrigieren, oder zumindest klären, was @jeff hat oben gepostet und worauf @KarlRichter hingewiesen hat. Ich denke, das Problem ist nicht, dass 'rsync -v' nicht länger die Zeichenfolge" update "ausgibt, sondern dass Sie' rsync -vv' verwenden müssen. Beachten Sie die zwei 'v's. Ich habe gerade überprüft, dass dies auf Ubuntu 14.04 mit 'rsync' Version 3.1.0 funktioniert. @jeff kannst du deinen Beitrag aktualisieren, um dies zu reflektieren? –

3

Rsync die Ausgabe können angepasst werden, werfen Sie einen Blick auf ; -v ist eine ziemlich grobe Art, Informationen von einem modernen rsync zu erhalten.

In Ihrem Fall bin ich mir nicht sicher, was genau Sie "aktualisiert" meinen. Zum Beispiel, auf dem Empfänger gelöscht? Nur Dateien/Verzeichnisse, aber auch Pipes und Symlinks? Mod/Zugriffszeiten oder nur Inhalt?

Als einen einfachen Test schlage ich vor, Sie betrachten: rsync --info=name1 <other opts>.

+0

wie über aktualisiert wie in "in irgendeiner Weise berührt"? – Michael

0

Hier ist mein nehmen ... (Arbeits bewährte und sehr zufrieden damit.)

rsync -arzihv --stats --progress \ 
    /media/frank/foo/    \ 
    /mnt/backup_drive/ | grep -E '^[^.]|^$' 

Das wichtige Bit ist die -i für itemize.

Der grep lässt alle Ausgangsleitungen passieren (auch jede Zusammenfassung wie in -h --stats, auch leere vor, dass die Lesbarkeit zugute kommt) außer mit einem Punkt diejenigen beginnen: Diese sind es, dass describe unchanged files:

A . means that the item is not being updated (though it 
    might have attributes that are being modified). 
Verwandte Themen