2010-09-22 18 views
13

मैं यह पता लगाने की कोशिश कर रहा हूं कि कैसे rsyncing फाइल परमाणु है। मुझे इसके बारे में कोई पुष्टि नहीं मिली। Rsync केवल डेल्टा भेजने में सक्षम होने के कारण, मैं इस धारणा के तहत था कि यह लाइव फ़ाइलों के केवल कुछ हिस्सों को अद्यतन करता है।आरएसआईएनसी ऑपरेशन फाइल स्तर पर परमाणु हैं?

दूसरी हैंग पर डीजेबी लाइव .cdb फ़ाइलों को सिंक्रनाइज़ करने के लिए rsync की सिफारिश करता है और मुझे यह पोस्ट (http://lists.samba.org/archive/rsync/2002-April/002210.html) मिला है जो दोनों यह इंगित करेंगे कि नई फ़ाइल बनाई गई है, फिर उचित स्थान पर ले जाया गया है।

क्या कोई मुझे एक या दूसरे की पुष्टि करने वाले आधिकारिक स्रोत पर इंगित कर सकता है? http://www.opensource.apple.com/source/rsync/rsync-40/rsync/support/atomic-rsync

समस्या यह है कि मैं यह परीक्षण करने के लिए कोशिश की और यह काम नहीं करता:

उत्तर

0

एक पर्ल स्क्रिप्ट है कि इस कार्यक्षमता जोड़ने के लिए माना जाता है नहीं है। इसके अलावा कुछ स्ट्रज है क्योंकि यूआरएल से यह rsync 4.0 से संबंधित कुछ दिखता है और rsync का वर्तमान संस्करण 2.6.9 है!

11

रुपयेसीएनसी एक नई अस्थायी फ़ाइल बनाता है जिसमें स्थानीय (प्राप्तकर्ता) प्रतिलिपि से ब्लॉक और भेजने की प्रतिलिपि से जो भी ब्लॉक आवश्यक हो। जब किया गया अस्थायी फ़ाइल मूल की जगह जगह में स्थानांतरित हो जाता है।

पूर्ण विवरण यहां हैं;

http://rsync.samba.org/how-rsync-works.html

+0

आपने वास्तविक प्रश्न का उत्तर नहीं दिया। - क्या इसका मतलब यह होगा कि प्रत्येक व्यक्तिगत फ़ाइल का अद्यतन परमाणु है? – zrajm

+0

हां, यदि आप एक ही निर्देशिका के भीतर परमाणु होने के लिए एक फ़ाइल चालन ऑपरेशन पर विचार करते हैं। –

+1

"विचार करें"? परमाणु बनाम गैर-परमाणु तथ्य की बात होनी चाहिए, राय नहीं, मुझे लगता है? :) क्या आप कहने का मतलब है कि ऐसे कई उदाहरण हैं जहां निर्देशिका में फ़ाइल (स्थानीय डिस्क पर) का नाम बदलना * नहीं * परमाणु है? यदि हां, तो ऐसा कब होगा? – zrajm

1

नहीं, rsync atomically फ़ाइलें लिखने नहीं है।

स्थानांतरण के दौरान, एक ही लक्षित निर्देशिका (.[original-filename].[6-random-characters]) में एक छिपी हुई अस्थायी फ़ाइल बनाई जा रही है जिसमें इसकी वर्तमान स्थिति में स्थानांतरित फ़ाइल शामिल है।

आप की हत्या rsync प्रक्रिया आदेश सब पहले से ही हस्तांतरित संकुल रखने के लिए अस्थायी फ़ाइल की प्रतिलिपि करने के लिए सुनिश्चित करें इससे पहले कि हस्तांतरण या rsync मुठभेड़ों किसी अन्य समस्या के दौरान कनेक्शन खोने के लिए है, जिससे कनेक्शन, को बंद करना पड़ा होना चाहिए, तो । आप मूल फ़ाइल नाम प्राप्त करने के लिए बस अस्थायी फ़ाइल का नाम बदल सकते हैं (अग्रणी "।" और पिछला ".xxxxxx" हटाएं)।