SSHFS सुविधाजनक है, लेकिन यह rsync या अधिक सामान्यतः सिंक्रोनाइज़ेशन टूल के साथ अच्छी तरह से जाली नहीं करता है।
सबसे बड़ी समस्या यह है कि SSHFS मोटे तौर पर rsync के प्रदर्शन अनुकूलन को मारता है। विशेष रूप से, मध्यम से बड़ी फ़ाइलों के लिए, जब rsync देखता है कि किसी फ़ाइल को संशोधित किया गया है, तो यह केवल संशोधित किए गए भागों को स्थानांतरित करने के लिए प्रत्येक तरफ फ़ाइल के कुछ हिस्सों पर चेकसम की गणना करता है। यह केवल एक अनुकूलन है यदि नेटवर्क बैंडविड्थ डिस्क बैंडविड्थ की तुलना में काफी छोटा है, जो आमतौर पर मामला है। लेकिन SSHFS के साथ, "डिस्क" बैंडविड्थ वास्तव में नेटवर्क बैंडविड्थ है, इसलिए rsync को पूरी फ़ाइल को पढ़ना होगा ताकि यह निर्धारित किया जा सके कि क्या कॉपी करना है। वास्तव में, एक स्थानीय प्रतिलिपि के साथ (जो यह है, जहां तक rsync का संबंध है, भले ही पक्षों में से एक SSHFS पर है), rsync बस पूरी फ़ाइल की प्रतिलिपि बनाता है।
अगर कई छोटी फाइलें हैं तो SSHFS प्रदर्शन के लिए हानिकारक है। Rsync को यह संशोधित करने के लिए निर्धारित करने के लिए हर फ़ाइल के कम से कम मेटाडेटा की जाँच करने की आवश्यकता है। SSHFS के साथ, इसके लिए प्रत्येक फ़ाइल के लिए नेटवर्क राउंड ट्रिप की आवश्यकता होती है। SSH पर rsync के साथ, दोनों पक्ष थोक में समानांतर और हस्तांतरण जानकारी में काम कर सकते हैं, जो बहुत तेज है।
एक्सेस प्रतिबंधों के संदर्भ में, SSHFS को SFTP एक्सेस की आवश्यकता होती है, जबकि rsync को शेल के माध्यम से कोड (विशेष रूप से, rsync प्रोग्राम) को चलाने की क्षमता की आवश्यकता होती है। यदि उपयोगकर्ता के पास एक शेल खाता नहीं है, तो एक विशेष शेल के साथ एक खाता प्रदान करना संभव और सामान्य है जो केवल कुछ कार्यक्रमों को चलाने की अनुमति देता है जिसमें शामिल हैं sftp-server
और rsync
। देखें क्या आपको एससीपी के लिए एक शेल की आवश्यकता है?
यदि आप केवल नई फ़ाइलों की प्रतिलिपि बना रहे हैं और बहुत बड़ी संख्या में फ़ाइलें नहीं हैं, तो कोई सार्थक प्रदर्शन अंतर नहीं है।
SSHFS एक SSH कनेक्शन स्थापित करता है जब फाइलसिस्टम आरोहित होता है और उस कनेक्शन को तब तक बरकरार रखता है जब तक कि यह अनमाउंट न हो जाए। Rsync हर बार जब आप इसे चलाते हैं तो एक नया कनेक्शन बनाते हैं, लेकिन आप हर बार प्रमाणित करने से बचने के लिए एक ही मुख्य कनेक्शन पर मल्टीप्लेक्सिंग फीचर और पिगबैक का उपयोग कर सकते हैं ।
SSHFS एक FUSE फाइल सिस्टम है और इस प्रकार केवल पारंपरिक यूनिक्स मेटाडेटा और ACL का समर्थन करता है। रुपीक्स विस्तारित विशेषताओं को स्थानांतरित कर सकता है (आपको उपयोग करने की आवश्यकता है rsync -aAX
, ध्यान दें कि एक सादे -a
केवल पारंपरिक यूनिक्स मेटाडेटा को संरक्षित करता है)।
rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz
। जब मैंrsync
इस ऑपरेशन के लिए उपयोग करता हूं , तो चेकसम की गणना के दौरान केवल उन भागों को स्थानांतरित करने के लिए जो संशोधित किए गए हैं, क्याrsync
पूरी फाइल को पढ़ना चाहिए, जिससे पूरा डेटा केवल इसके अद्यतन अनुभाग के बजाय डाउनलोड किया जा सकेगा? @Gilles