2010-12-08 3 views
7

क्या मैं rsync का उपयोग कर सैम सर्वर पर सैकड़ों साइटों पर "मॉडल" साइट से परिवर्तनों को सिंक कर सकता हूं?
मैं सामान्य टेम्पलेट फ़ाइलों और जेएस स्क्रिप्ट अपडेट कर रहा हूं। यदि संभव हो तो मैं इसे कैसे स्थापित करूं?
(मैं एक होस्टगेटर समर्पित सर्वर पर हूं, अपाचे चला रहा हूं)
rsync समर्थन कई को समन्वयित करने के लिए कर सकते हैं?

उत्तर

11

नीचे दिए गए संपादित प्रश्न के लिए मेरा विस्तारित उत्तर पढ़ें।

सबसे मामूली और निष्पक्ष दृष्टिकोण शायद एक ऐसी स्क्रिप्ट स्थापित करने के लिए होगा जो केवल उस सर्वर के लिए rsync चलाता है जिसे आप सिंक्रनाइज़ करना चाहते हैं।

यह ज्यादातर मामलों में ठीक है, लेकिन मुझे नहीं लगता कि यह आपके लिए क्या देख रहे हैं, क्योंकि आपको लगता है कि पता लगा है | अपने आप को है ...

इस विधि को भी निम्न नुकसान हैं:

  • एक सर्वर सभी ट्रैफिक भेजता है, कोई कैस्केडिंग नहीं है। तो यह विफलता का एक बिंदु और एक बाधा

  • यह बहुत अक्षम है। Rsync एक महान उपकरण है, लेकिन फ़ाइल सूची पार्स करने और मतभेदों को पता चल सके कि आप सर्वर

लेकिन आप क्या कर सकते हैं के सैकड़ों सिंक्रनाइज़ करना चाहते हैं, बहुत जल्दी नहीं है?

एकाधिक सर्वरों के लिए rsync को कॉन्फ़िगर करना स्पष्ट रूप से जाने का सबसे आसान तरीका है। तो आपको उस से शुरुआत करनी चाहिए और अपनी समस्याएं कहां अनुकूलित करनी चाहिए।

आप सही फाइल सिस्टम का उपयोग कर उदाहरण के लिए इसे तेज कर सकते हैं। एक्सएफएस शायद एक्स 3 की तुलना में 50 गुना तेजी से होगा।

आप एकजुट भी उपयोग कर सकते हैं जो थोड़ा अधिक शक्तिशाली टूल है और कैश में फ़ाइलों की एक सूची रखता है।

आप एक कैस्केड भी सेट कर सकते हैं (सर्वर ए सर्वर सर्वर को सिंक्रनाइज़ करने के लिए सर्वर बी सिंक्रनाइज़ करना)।

आप अपने ग्राहकों द्वारा धक्का देने के बजाए खींचने की भी स्थापना कर सकते हैं। आपके पास एक उप डोमेन हो सकता है जो लोड बैलेंसर में प्रवेश बिंदु है, जहां आपके पास 1 या अधिक सर्वर हैं जिसके पीछे आप अपने स्रोत सर्वर से दबाकर सिंक्रनाइज़ करते हैं।

कारण मैं आपको ये सब बता रहा हूं क्योंकि जाने का सही तरीका नहीं है, आपको अपनी आवश्यकताओं के आधार पर इसे समझना होगा।

हालांकि मैं निश्चित रूप से जीआईटी की तलाश करने की सिफारिश करता हूं।

गिट एक संस्करण नियंत्रण प्रणाली है जो बहुत शक्तिशाली और कुशल है।

आप एक गिट भंडार बना सकते हैं और अपनी क्लाइंट मशीनों को धक्का दे सकते हैं।

यह बहुत अच्छी और कुशल काम करता है और लचीला और स्केलेबल है, इसलिए आप वितरित फ़ाइल सिस्टम, कैस्केड, लोडबलेंसिंग आदि सहित इस संरचना पर लगभग कुछ भी बना सकते हैं।

आशा है कि मैंने आपको सही दिशाओं में कुछ बिंदु दिए हैं जिन्हें आप देख सकते हैं।

संपादित करें:

तो लगता है कि आप एक ही सर्वर पर परिवर्तन सिंक्रनाइज़ करने के लिए चाहते हैं - या यहां तक ​​कि एक ही हार्ड डिस्क (जो मैं नहीं जानता, लेकिन संभावना है कि आप के लिए बहुत महत्वपूर्ण है)।

वैसे मूल रूप से यह सब वही है। सम्मिलित करें - ओवरराइट करें - हटाएं ... इसके लिए रुनक भी एक बहुत अच्छा टूल है क्योंकि यह परिवर्तन को वृद्धिशील स्थानांतरित करता है। न केवल "टूटा स्थानान्तरण शुरू करता है"।

लेकिन मैं कहूंगा कि यह पूरी तरह से सामग्री पर निर्भर करता है।

यदि आपके पास टेम्पलेट, जावास्क्रिप्ट, आदि जैसे बहुत सी छोटी फ़ाइलें हैं, तो rsync बहुत धीमा हो सकता है। स्रोत फ़ोल्डर को पूरी तरह से हटाने और फिर फ़ाइलों को फिर से कॉपी करने के लिए यह तेज़ हो सकता है। इसलिए rsync (या किसी अन्य उपकरण) को परिवर्तनों के लिए सभी फाइलों की जांच करने की आवश्यकता नहीं है।

आप बस आरआर स्विच के साथ सब कुछ कॉपी कर सकते हैं ताकि सबकुछ ओवरराइट हो जाए, लेकिन फिर आपके पास पुरानी फाइलें हो सकती हैं हटा दिया गया

मैं कई मामलों को भी जानता हूं जहां ऐसी चीजें उपversण का उपयोग करके की जाती हैं, क्योंकि लोगों को अधिक नियंत्रण या कुछ नहीं लगता है। यह भी अधिक लचीला है।

साझा डेटा की अवधारणा नहीं है:

लेकिन वहाँ एक बात यह है कि आप में से सोचना चाहिए।

सिम्लिंक और हार्ड लिंक हैं।

आप उन्हें फ़ाइलों और फ़ोल्डरों पर रख सकते हैं (केवल फाइलों पर हार्ड लिंक। मुझे पता नहीं क्यों)।

यदि आप लक्ष्य बी पर एक सिम्लिंक ए डालते हैं तो फ़ाइल को सिमलिंक की तरह स्थित और नामित होने जैसा लगता है, लेकिन पीछे संसाधन कहीं अलग है। लेकिन अनुप्रयोगों को अलग कर सकते हैं। उदाहरण के लिए अपाचे को सिम्लिंक का पालन करने के लिए कॉन्फ़िगर किया जाना चाहिए (अन्यथा यह एक सुरक्षा समस्या होगी)।

तो यदि आप सभी एक फ़ोल्डर में बदलते हैं तो आप केवल उस फ़ोल्डर की तरह सिमलिंक डाल सकते हैं, जो आपके फ़ोल्डर को इंगित करता है, और आपको फिर से सिंक्रनाइज़ करने की चिंता करने की ज़रूरत नहीं है, क्योंकि वे एक ही संसाधन साझा करते हैं।

  • वे अलग दिख:

    लेकिन वहाँ कारणों से आप ऐसा करने के लिए नहीं करना चाहते हैं। - यह बेतुका लगता है, लेकिन वास्तव में, यह सबसे आम कारण है कि लोगों को सिम्लिंक पसंद नहीं है। लोग शिकायत कर रहे हैं क्योंकि वे "अपने कार्यक्रम में बहुत अजीब लगते हैं" या जो भी हो।

  • सिम्लिंक कुछ क्षमताओं में सीमित हैं लेकिन इसलिए अन्य बड़े फायदे हैं। क्रॉस-फाइल सिस्टम पॉइंटिंग इत्यादि की तरह हालांकि। लगभग हर नुकसान को काफी हद तक सौदा किया जा सकता है और आपके आवेदन में काम किया जा सकता है। दयनीय सत्य यह है कि सिम्लिंक लिनक्स ओएस और फाइल सिस्टम की मूलभूत विशेषता है, लेकिन एप्लिकेशन विकसित करते समय उनका अस्तित्व कभी-कभी भूल जाता है। यह एक ट्रेन विकसित करने की तरह है लेकिन भूल रहा है कि लंबे पैर या कुछ भी लोग हैं ...

दूसरी तरफ हार्डलिंक्स फाइलों की तरह दिखते हैं क्योंकि वे फाइलें हैं।

और एक फ़ाइल को इंगित करने वाली प्रत्येक हार्डलिंक वह फ़ाइल है।

यह भ्रामक लगता है लेकिन इसके बारे में लगता है कि इस प्रकार है:

हर फ़ाइल डिस्क पर कुछ डेटा है। फिर कुछ इनोड पॉइंटर होता है जो कुछ निर्देशिका के भीतर उस संसाधन को इंगित करने वाले कुछ नाम के साथ होता है।

हार्डलिंक्स बस यही हैं। फ़ाइल के बस "लिस्टिंग" हैं।

परिणामस्वरूप वे एक ही पठन लॉक साझा करते हैं, संशोधित/हटाए गए/आदि को एक साथ प्राप्त करते हैं।

हालांकि यह केवल एक फाइल सिस्टम/डिवाइस पर किया जा सकता है और क्रॉस-डिवाइस के अनुसार नहीं।

लिंक कुछ बड़े फायदे हैं। वे काफी स्पष्ट हैं:

आपके पास डुप्लिकेट डेटा नहीं है। जो असंगतताओं की संभावना को समाप्त करता है और आपको डिस्क पर कम स्थान की आवश्यकता नहीं है और उसे कम करने की आवश्यकता नहीं है।

हालांकि यह कभी-कभी कहीं अधिक महत्व देता है।

उदाहरण के लिए यदि आप एकाधिक वेबसाइट चलाते हैं और वे सभी ज़ेंड फ्रेमवर्क का उपयोग करते हैं।

यह शिटलोड भारी ढांचा है और इसके ओपोड कैशिंग आपके रैम या कुछ 50 मेगापिक्सल की तरह भर जाएगी।

यदि आपके पास अपनी वेबसाइटों के लिए एक ही ज़ेंड लाइब्रेरी फ़ोल्डर है, तो आपको केवल एक बार इसकी आवश्यकता है।

+0

यह एक अच्छा जवाब है। मैं आपके द्वारा बताई गई प्रत्येक चीज़ पर पढ़ रहा हूं, मुझे यह बहुत उपयोगी लगता है। मुझे स्पष्ट होना चाहिए था कि मैं वास्तव में केवल एक सर्वर के साथ काम कर रहा हूं और साइटों की होम निर्देशिकाओं के बीच सिंकिंग की आवश्यकता है। क्या यह पूरी तरह से नहीं है कि rsync जैसे उपकरण क्या हैं? – filip

+0

धन्यवाद, यह बहुत उपयोगी जानकारी है। मैं सिम्लिंक के साथ प्रयोग कर रहा हूं और सोचता हूं कि वे मेरी समस्या को rsync से बेहतर हल करने में सक्षम हो सकते हैं। – filip

संबंधित मुद्दे