2009-12-15 14 views
6

अपडेट किया गया था जब rsync प्रत्येक फ़ाइल के लिए किए गए विवरण (वर्बोज़ झंडे में से एक का उपयोग करके) के विवरणों को प्रिंट करता है, ऐसा लगता है कि अद्यतन की गई दोनों फाइलें और फ़ाइलें अपडेट नहीं की गईं। उदाहरण के लिए मेरी उत्पादन -v ध्वज का उपयोग का एक टुकड़ा इस तरह दिखता है:rsync केवल उन फ़ाइलों को रिपोर्ट करें जिन्हें

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

मैं केवल उन्हीं फ़ाइलों को अद्यतन किया गया के बारे में दिलचस्पी रखता हूँ। उपरोक्त मामले में sorry.html है। यह निर्देशिका नामों को भी प्रिंट करता है क्योंकि यह उन प्रविष्टियों में प्रवेश करता है, भले ही उस निर्देशिका में कोई फ़ाइल न हो। इस आउटपुट से अद्यतन फ़ाइलों के साथ अपतटीय फ़ाइलों और निर्देशिकाओं को फ़िल्टर करने का कोई तरीका है?

उत्तर

4

आप ग्रेप के माध्यम से यह पाइप कर सकते हैं:

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

लंबे समय तक चलने वाली फ़ाइलों पर आपको प्रगति नहीं होगी क्योंकि grep इंटरैक्टिव नहीं है। – srigi

+0

संस्करण> = 3.0.7 के लिए काम नहीं करता है (देखें http://serverfault.com/questions/401210/rsync-report-only-uploaded-files#comment418372_401215) –

+1

मैं सही करना चाहता हूं, या कम से कम स्पष्ट करना चाहता हूं, क्या @jeff ऊपर पोस्ट किया गया और क्या @ KarlRichter ने बताया। मुझे लगता है कि मुद्दा यह नहीं है कि 'rsync -v' अब स्ट्रिंग "अपतटीय" को उत्सर्जित नहीं करता है बल्कि आपको' rsync -vv' का उपयोग करने की आवश्यकता है। दो 'वी' नोट करें। मैंने उबंटू 14.04 पर 'rsync' संस्करण 3.1.0 के साथ इस काम को अभी सत्यापित किया है। @jeff क्या आप इसे प्रतिबिंबित करने के लिए अपनी पोस्ट अपडेट कर सकते हैं? –

3

Rsync का उत्पादन बड़े पैमाने पर अनुकूलित किया जा सकता, पर एक नज़र डालें; -v एक आधुनिक rsync से जानकारी प्राप्त करने के लिए एक काफी मोटा तरीका है।

आपके मामले में, मुझे यकीन नहीं है कि आप वास्तव में "अपडेट" पर क्या विचार करते हैं। उदाहरण के लिए, रिसीवर पर भी हटा दिया? केवल फाइलें/डीआईआर, लेकिन पाइप और सिम्लिंक भी? मॉड/एक्सेस टाइम्स या केवल सामग्री?

एक साधारण परीक्षण के रूप में मेरा सुझाव है कि आप देखें: rsync --info=name1 <other opts>

+0

"किसी भी तरह से छुआ" के रूप में अपडेट किए जाने के बारे में कैसे? – Michael

0

यहाँ मेरी ले ... (काम साबित है और इसके साथ बहुत खुश।)

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

महत्वपूर्ण बिट गणना के लिए -i है।

ग्रेप सभी उत्पादन लाइनों पारित (खाली लोगों उससे पहले, -h --stats में के रूप में भी किसी भी सारांश भी है, जो स्पष्टता लाभ) की सुविधा देता है को छोड़कर उन एक डॉट से प्रारंभ हो: इन लोगों को कर रहे हैं, कि describe unchanged files:

A . means that the item is not being updated (though it 
    might have attributes that are being modified). 
संबंधित मुद्दे