2009-12-15 20 views
6

rsync, her bir dosya için ne yaptığını ayrıntılarını yazdığında (ayrıntılı bayraklardan birini kullanarak), güncelleştirilen iki dosyayı ve güncelleştirilmemiş dosyaları içerdiği görülüyor. Örneğin -v bayrağını kullanarak çıkışının bir pasajı şöyle görünür:Sadece rsync dosyaları güncelleştirildi güncelleştirildi

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

ben güncellenmiş dosyaları hakkında ilgileniyorum. Yukarıdaki durumda, sorry.html. Ayrıca, bu dizinde güncellenen bir dosya olmasa bile dizin adlarını girerken de yazdırır. Güncelleştirilmiş dosya ve dizinleri bu çıktının güncellenmiş dosyaları olmadan filtrelemenin bir yolu var mı?

cevap

4

Sen grep aracılığıyla boru bunu yapabilirsiniz:

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

Grep, etkileşimli olmadığından, uzun süren dosyalarda ilerleyiş olmaz. – srigi

+0

, sürüm> = 3.0.7 için çalışmıyor (bkz. Http://serverfault.com/questions/401210/rsync-report-only-uploaded-files#comment418372_401215) –

+1

Düzeltmek veya en azından netleştirmek istiyorum. @jeff yukarıda belirtilen ve @KarlRichter işaret etti. Sanırım sorun şu ki, "rsync -v" artık "uptodate" dizgesini yaymıyor, bunun yerine "rsync -vv" yi kullanmanız gerekiyor. İkisini not edin. Ubuntu 14.04'te rsync sürüm 3.1.0 ile bu çalışmaları doğruladım. @jeff Mesajınızı bunu yansıtacak şekilde güncelleyebilir misiniz? –

3
Rsync'nin çıkışı yoğun özelleştirilebilir

, bir göz atın; -v, modern bir rsync'den bilgi almak için oldukça kaba bir yoldur. Sizin durumunuzda, "güncellenmiş" olarak ne düşündüğünüzü tam olarak anlamadığınızdan emin değilim. Örneğin, alıcıda da silindi mi? Sadece dosyalar/direkler, aynı zamanda borular ve sembolik bağlantılar? Mod/erişim süreleri veya sadece içerik?

Basit bir test olarak size bakmanızı öneririz: rsync --info=name1 <other opts>.

+0

"herhangi bir şekilde dokunulduğunda" nasıl güncellenir? – Michael

0

İşte benim alabilir ... (iş kanıtlanmış ve onunla çok mutlu.)

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

önemli bit itemize için -i olduğunu bu. , Bu olanlar describe unchanged files olduğu:

grep dışında bu bir nokta ile başlayan (okunabilirlik yarar sağlayan, boş olanlar daha önce de, -h --stats olarak aynı zamanda herhangi bir özet) tüm çıkış hatları geçmesine izin verir

A . means that the item is not being updated (though it might have attributes that are being modified). 
İlgili konular