एक फाइलसिस्टम द्रष्टा के साथ 2 कंप्यूटरों के बीच एक फ़ोल्डर सिंक करें, ताकि हर बार जब कोई फाइल संशोधित हो, तो उसे तुरंत दोहराया जाए


20

मेरे पास है:

  • एक लिनक्स सर्वर जिसे मैं आईपीएच 203.0.113.0 पोर्ट 1234 पर एसएसएच के माध्यम से जोड़ता हूं

  • एक घरेलू कंप्यूटर (एक राउटर के पीछे), सार्वजनिक आईपी 198.51.100.17, जो या तो डेबियन है या विंडोज + सिग्विन

एक फ़ोल्डर /home/inprogress/ (दोनों दिशाओं में) सिंक्रनाइज़ करने के लिए सबसे आसान क्या है , थोड़ा सा rsync, लेकिन एक फाइलसिस्टम द्रष्टा के साथ , ताकि हर बार जब एक फ़ाइल संशोधित हो, तो यह तुरंत दूसरी तरफ दोहराया जाता है? (यानी सिंक प्रोग्राम को मैन्युअल रूप से कॉल करने की आवश्यकता नहीं है)

मैं कमांड-लाइन / नो-जीयूआई समाधान की तलाश कर रहा हूं, क्योंकि सर्वर हेडलेस है।

वहाँ एक लिनक्स / डेबियन निर्मित समाधान है?


7
आप वर्णन कर रहे हैं syncthing
Kusalananda

वहाँ है lsync, लेकिन मुझे नहीं पता कि यह द्विदिश सिंक के लिए उपयोगी रूप से काम करता है या नहीं।
उलरिच श्वार्ज़ 12

lsync, csync2, inotify + rsync, लेकिन मैं स्थानीय नेटवर्क सेटिंग में उनका उपयोग करना पसंद करूंगा।
रुई एफ रिबेरो

2
फाइलसिस्टम स्तर पर, यह OCFS2 की तरह लगता है, या यहाँ तक कि RAID 1 NBD पर
roaima

3
वन-वे सिंक आसान है। द्वि-दिशात्मक सिंक का तात्पर्य संघर्ष के संकल्प से है (हां, यह कुछ बिंदु पर होगा), जिसका अर्थ है कि कुछ प्रकार के यूआई (हालांकि आवश्यक जीयूआई नहीं है)।
जैकर्न

जवाबों:


23

@ कुसलानंद की टिप्पणी के बाद, मैंने आखिरकार इस उपयोग के मामले के लिए सिंटिंग को परीक्षण करने में कुछ घंटे बिताए और यह बहुत अच्छा काम करता है। यह स्वचालित रूप से दोनों पक्षों में परिवर्तन का पता लगाता है और प्रतिकृति बहुत तेज है।

उदाहरण: कल्पना करें कि आप server.pyअपने पसंदीदा नोटपैड सॉफ़्टवेयर में स्थानीय रूप से काम कर रहे हैं , आपने CTRL + S (सहेजें) मारा। कुछ सेकंड बाद यह स्वचालित रूप से दूर के सर्वर पर (बिना किसी पॉपअप संवाद के) दोहराया जाता है।

एक बड़ी बात जो मैंने देखी है, वह यह है कि आपको होम कंप्यूटर और सर्वर के आईपी के बारे में सिन्थिंग के साथ सोचने की ज़रूरत नहीं है: प्रत्येक "डिवाइस" (कंप्यूटर, सर्वर, फोन, आदि) में एक अद्वितीय डिवाइसआईडी है और यदि आप साझा करते हैं दूसरे डिवाइस के साथ आईडी, यह स्वचालित रूप से पता लगाएगा कि उन्हें एक दूसरे से कैसे कनेक्ट करना चाहिए।

करने के लिए:

  • होम कंप्यूटर साइड (विंडोज़ या लिनक्स):

    ब्राउज़र विन्यास उपकरण में सामान्य सिंक्थिंग का प्रयोग करें

  • VPS पक्ष:

    पहले VPS को पोर्ट फ़ॉरवर्डिंग से कनेक्ट करें:

    ssh <user>@<VPS_IP> -L 8385:localhost:8384
    

    बाद वाला विकल्प VPS के सिन्थिंग वेब-कॉन्फ़िगरेशन टूल को 8384 पर सुनकर होम कंप्यूटर के पोर्ट 8385 पर रीडायरेक्ट करेगा।

    फिर इसे VPS पर चलाएँ:

    wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-amd64-v0.14.52.tar.gz 
    tar xvfz syncthing-linux-amd64-v0.14.52.tar.gz
    nohup syncthing-linux-amd64-v0.14.52/syncthing &
    

    फिर होम कंप्यूटर के ब्राउज़र पर, http: // localhost: 8385 : खोलें, यह VPS का सिंटिक्विंग कॉन्फ़िगरेशन होगा!


अन्य समाधान मैंने कोशिश की:

  • SSHFS इस ट्यूटोरियल का उपयोग कर रहा है । कृपया ध्यान दें कि इस ट्यूटोरियल में वे sshfs-win का उपयोग नहीं करते हैं, बल्कि win-sshfs (ये दो अलग-अलग प्रोजेक्ट्स) हैं। मैंने दोनों की कोशिश की, और मैं उनमें से किसी को भी काम नहीं कर सका (शायद मेरे वीपीएस कॉन्फ़िगरेशन में कोई समस्या है)।

  • यहां एक दिलचस्प संदर्भ यह भी है: /softwarerecs/13875/windows-sshfs-sftp-mounting-clients


सिंटिंगहिंग के अतिरिक्त फायदे जो मैंने अभी देखे हैं:

  • आप कम कर सकते हैं fsWatcherDelaySमें config.xmlसे 10करने के लिए 2सेकंड ताकि 2 सेकंड बाद Ctrl + एस, करने के बाद (अपलोड करने के लिए समय +, यानी 1 एक छोटा सा पाठ फ़ाइल के लिए दूसरे से कम) यह अन्य कंप्यूटर पर

  • यदि आप दो कंप्यूटरों को सिंक करते हैं जो एक ही स्थानीय नेटवर्क में हैं (केवल एक-दूसरे को DeviceID देकर, स्थानीय IP पते की परवाह करने की आवश्यकता नहीं है), तो यह स्वचालित रूप से ध्यान देगा कि इसे इंटरनेट के माध्यम से स्थानांतरित करने की आवश्यकता नहीं है, लेकिन यह हो सकता है स्थानीय स्तर पर व्यवहार करें। यह बहुत अच्छा है और एक बहुत तेज गति हस्तांतरण (4 एमबी / एस!) phone <--> computerदोनों को वाईफाई के माध्यम से एक ही घर के राउटर से कनेक्ट करने की अनुमति देता है । ... जबकि यह ड्रॉपबॉक्स सिंक के साथ एडीएसएल पर 100 केबी / एस पर अटक जाएगा। ! (मेरा ADSL अपलोड पर 100 KB / s पर सीमित है)


@sudodus एक मित्र ने कुछ हफ़्ते पहले ही मेरे लिए इसकी सिफारिश की थी, और मैंने इसे कंप्यूटर के लिए आज़माया था <-> फ़ोन सिंक, लेकिन मैंने सोचा नहीं था कि यह एक विकास सर्वर के लिए भी इतना अच्छा काम करेगा! अपना कोड संपादित करें, सहेजें को हिट करें, 1 2 3 यह अन्य कंप्यूटर पर है!
बस्ज

1
+1। मुझे काफी समय से एक ही समस्या थी, सालों तक rsync + कुछ स्क्रिप्ट का उपयोग किया, और अंत में 2 महीने पहले syncthing, csync, unison और कुछ अन्य की कोशिश की। किसी भी संख्या में, और तब भी, जब उनमें से कुछ के पास स्थायी नेटवर्क कनेक्शन नहीं है, महान काम करता है। 100% की सिफारिश कर सकते हैं।
गुंतराम ब्लोम

1
महान है कि आप इन सभी विभिन्न समाधानों का परीक्षण कर चुके हैं @GuntramBlohm! यदि आपके पास कुछ मिनटों के लिए अपनी प्रतिक्रिया देने के लिए एक उत्तर देने के लिए / syncthing, rsync, csync, unison, आदि के बीच तुलना / प्रत्येक के लिए पेशेवरों / विपक्ष, यह भविष्य के संदर्भ के लिए सुपर दिलचस्प होगा!
19

16

यूनिसन की तरह लगता है कि काम करना चाहिए।

Unison OSX, Unix और Windows के लिए एक फाइल-सिंक्रोनाइज़ेशन टूल है। यह अलग-अलग होस्ट (या एक ही होस्ट पर अलग-अलग डिस्क) पर संग्रहीत फ़ाइलों और निर्देशिकाओं के संग्रह के दो प्रतिकृतियों को अलग से संशोधित करने की अनुमति देता है, और फिर प्रत्येक प्रतिकृति में दूसरे में परिवर्तन का प्रचार करके तारीख तक लाया जाता है।

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

जब भी जरूरत हो एक सिंक को ट्रिगर करने के लिए एक फाइल वॉचर (fsmonitor) घटक होता है। विवरण के लिए मैनुअल में "रिपीट वॉच" खोजें ।

ऐसा लगता है कि डेबियन का सही संस्करण (2.48+) बॉक्स से बाहर है


धन्यवाद! क्या फ़ाइल वॉचर fsmonitor यूनिसन के साथ बॉक्स से बाहर है, या क्या हमें इस उपकरण को स्थापित करना है और इसे मैन्युअल रूप से जेल के साथ जोड़ना है?
बसज

1
@ बस्ज यह हाल के पर्याप्त संस्करणों में शामिल है और इसे स्थापित करना वास्तव में मामूली है। मैंने मैनुअल में एक लिंक जोड़ा है।
बहुत-से

मैंने पुराने मैक में इसका इस्तेमाल किया था। यह सिर्फ न्यूनतम परेशानी के साथ काम करता है। कोई विचार नहीं अगर यह सर्वर परिदृश्यों के लिए उपयुक्त है।
रुई एफ रिबेरो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.