سؤال كيفية مزامنة المجلد الرئيسي بين أجهزة كمبيوتر متعددة؟


لدي ثلاثة أجهزة كمبيوتر في المنزل ، وأرغب في الحصول على /home/ شجرة مجلد متزامنة بين الثلاثة.
يتم تحديث أي ملفات / مجلدات (باستثناء تلك المخفية) التي تم تعديلها / إضافتها / إزالتها في أحد أجهزة الكمبيوتر الثلاثة في الجهازين الآخرين.

هو rsync ما يكفي للقيام بذلك؟ وكيف؟


102


الأصل


المشكلة في معظم أدوات "المزامنة" ، (بما في ذلك rsync إذا كنت أذكر بشكل صحيح) ، هي أنها لا تملك فكرة عن إجراءات المستخدم. إذا قمت بحذف ملف على الكمبيوتر X ، فإن الأداة لا تعرف ما إذا كنت (أ) قمت بالفعل بحذف الملف على الكمبيوتر X ، أو (ب) أنك قمت بإضافة هذا الملف على الكمبيوتر Y. ستفترض معظم الأدوات (b) ، لذلك عند المزامنة سيقومون بإضافة الملف مرة أخرى على الكمبيوتر X (بدلاً من حذفه على الكمبيوتر Y). - Rabarberski
Rabarberski يحتفظ العديد من أدوات المزامنة (بما في ذلك Unison أو Syncthing) بقاعدة بيانات مع إشارات إلى البيانات الموجودة (لهذا السبب). لن يساعدك ذلك عند مزامنة مجلدات جديدة لأول مرة ، ولكن يمكنه حذف الملفات لك (تلقائيًا). إن المشكلة الحقيقية في معظم أدوات المزامنة هي عندما يتم تغيير الملفات في موقعين قبل حدوث المزامنة التالية - في حالة التعارض هذه عادة ما يتعين عليك القيام بعملية دمج يدوي أو ربما استبدالها بأحدث إصدار. - Chris
إن المزامنة عندما لا يمكن نسخ التغييرات على الفور على الأجهزة الأخرى صعبة للغاية ولم أر أبداً أي برنامج يقوم بذلك بشكل مثالي ، لذا كن مستعدًا لبضع أخطاء ، أو تعارضات ، أو ظهور ملفات جديدة. أوصي فقط بمزامنة بعض المجلدات المحددة التي تعرف أنها ستكون قابلة للإدارة بواسطة برنامج المزامنة. - Arno


الأجوبة:


في ما يلي قائمة بالأشياء التي من المحتمل أن تحل هذه المشكلة ، كل منها يوازن بين المقايضات التي يتعين عليك إجراؤها بشكل مختلف ، لذلك سيتعين عليك اتخاذ اختياراتك الخاصة وتجريب الأشياء بنفسك:

  • انسجام - كما ذكر آخرون ، يتم تشغيلها يدويًا ، ولكنها سريعة جدًا وموثوقة وفعالة. يتطلب كلا الجهازين متزامنين ليكونا في نفس الوقت. ولديه واجهة مستخدم لطيفة تسمح لك بالتعامل مع الصراعات التي لا يمكن تجنبها ، وتتبع وتنشر الحذف بشكل صحيح. يسمى التطبيق / الحزمة الرسومية unison-gtk.

  • OwnCloud - تشغيل التخزين السحابي على الخادم الخاص بك. ستحتاج إلى آلة للمغادرة. يتطلب قدرًا معقولًا من الإعداد. تشغيل خادم الويب Apache 2 الكامل وقاعدة بيانات SqlLite أو MySQL على الخادم. يعمل على غرار دروببوإكس مع عميل سطح المكتب ، ولكن الخادم تحت سيطرتك. تحرير: لقد خضعت OwnCloud مؤخرًا لبعض التغييرات في كيفية تشغيل المشروع ، ولديها الآن مصدر مفتوح بالكامل (أي لا يوجد إصدار "مؤسسة" مصدر مغلق) تحت ستار NextCloud، (انظر الى هذا مقابلة يوتيوب مع المطور الأصلي OwnCloud لمزيد من التفاصيل).

  • SparkleShare - يستخدم بوابة للحفاظ على الملفات متزامنة. وفقًا للصفحة الرئيسية: جيد للعديد من الملفات الأصغر حجمًا ، ليس جيدًا لكثير من الملفات الكبيرة مثل الموسيقى أو مجموعة الصور.

  • Seafile - يوفر مكون خادم يمكنك تثبيته على جهاز محلي. يستخدم Seafile نموذج بيانات على غرار غيت لتتبع التغييرات. يوفر لعملاء المزامنة لأجهزة الكمبيوتر المكتبية والأجهزة اللوحية والهواتف الذكية. يمكن العثور على مشاركة مدونة تصف الإعداد في http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - "... أداة تزامن الملفات ثنائية الاتجاه مكتوبة في bash وتستند إلى rsync. وهي تعمل على الدلائل المحلية و / أو البعيدة عبر أنفاق ssh. وهي مستهدفة بشكل رئيسي لإطلاقها كمهمة كرون" (نص من موقع الويب)

  • PowerFolder - مشروع GPL v2 القائم على جافا. الموقع الرئيسي يدفع العروض التجارية حتى لا يكون من الواضح كيفية استخدام ملف .jar المقدم.

  • رسينك - سريع وفعال وكان موجودًا منذ عقود ، ومع ذلك لا يحتفظ بسجل ، لذلك عليك اختيار اتجاه لتحديد ما إذا كان الملف جديدًا أو محذوفًا. تتوفر الأدوات الرسومية مثل gwRsync.

  • Lsyncd - تراقب المجلدات / الملفات لتشغيل النسخ المتماثل rsync

  • dvcs-المزامنة التلقائية - مكتوبة في python ، يستخدم بوابة لتخزين وتبادل التغييرات بين الآلات ، و XMPP للتواصل التغييرات.

  • GIT-المرفق- أداة سطر الأوامر لتنقل الملفات حولها ، على أساس بوابة. هناك جولة توضيحية هنا: http://git-annex.branchable.com/walkthrough/

  • Tonido - مجانيه. يوفر تطبيق سطح مكتب يشارك الملفات في الأجهزة الأخرى. أيضا تقديم العروض سحابة التجارية ، وجهاز الكمبيوتر TonidoPlug المكونات.

  • بت تورنت سينك (مجانية) - مزامنة الملفات من نظير إلى نظير على أساس BitTorrent. لا أعرف الكثير عن هذا حيث أنني لن أستخدمه نظرًا لعدم كونه مفتوح المصدر وعدم الوثوق به للحفاظ على بياناتي ضمن شبكة LAN الخاصة بي ، فلا تتردد في تحرير هذه الإجابة من خلال معلومات أفضل / تجارب حقيقية.

  • SyncThing - تم تطويره كبديل مفتوح المصدر لتزامن BitTorrent. وهي تفتقر حاليًا إلى بعض الميزات المتقدمة في BitTorrent Sync ، مثل الأقران غير الموثوق بها. هو تحت التطوير النشط.

  • الخدمات التجارية المستضافة مثل dropbox ، ubuntu one ، google drive ، apple iCloud كلها رخيصة سريعة ومريحة ، ومع ذلك فهي تتطلب الثقة في الشركة مع جميع البيانات الخاصة بك ، وتحتاج إلى اتصال إنترنت سريع بشكل معقول.

  • بوابة / تخريب - استخدم نظام التحكم في المصدر مباشرة. دليل كامل ويمكن أن يكون أسلوبًا معقدًا بعض الشيء ولكنه شائع مع بعض المستخدمين المطلعين على هذه الأنظمة من استخدامهم كأدوات برمجة.

  • CloudFS - syncronise نظام الملفات بأكمله ، تكنولوجيا الكتلة القائمة

  • NFS mount - أساسًا يعيش منزلك على جهاز واحد ويمكنك الوصول إليه عبر الشبكة ، وهذا ليس جيدًا لأجهزة الكمبيوتر المحمولة التي تلتقطها معك. مزيد من المعلومات: http://www.linuxjournal.com/article/4880


العوامل التي يجب مراعاتها عند اتخاذ قرارك:

  • الخادم المركزي - تتطلب بعض الحلول أن تكون الآلة طوال الوقت (أو على الأقل عندما تحتاج إلى المزامنة) لكي تتزامن مع الأجهزة الأخرى. قد يكون هذا أحد الأجهزة الموجودة لديك ، أو جهازًا منفصلًا مثل NAS. احترس من فواتير الطاقة المتزايدة.

  • تلقائي / يدوي / مجدول - إن أفضل طريقة لتجنب الاضطرار إلى حل النزاعات حيث يتم تغيير شيء ما على أكثر من آلة هو وجود برنامج على كل جهاز يشاهد التغييرات والمزامنة على الفور ، وبهذه الطريقة يمكنك تقليل الفرصة لتنتهي مع عدة الإصدارات. مع العمليات اليدوية عليك دائما أن تتذكر لتشغيل التزامن.

  • الوصول عن بعد - هل تريد إجراء تزامن بعيدًا عن شبكة الاتصال المحلية (LAN) ، فكر في الآثار الأمنية لهذا.

  • الأمان - هل تترك بياناتك شبكة تشفير أم لا ، ومدى أمان عملية النقل بين الأجهزة. ماذا لو قام شخص ما بالتقاط بياناتك أثناء التنقل وبعد ذلك وجد أن التشفير يعاني من عيوب؟ من يتحكم في الخادم الذي يحتفظ ببياناتك ، هل البيانات مشفرة ، هل يمكنك الوثوق بأطراف ثالثة؟ هل لديك لكز ثقوب في جهاز التوجيه الخاص بك للحصول على الوصول عن بعد. ما المدة التي تلتصق بها الملفات "المحذوفة" والبيانات الوصفية المرتبطة بها على الأجهزة المتزامنة وعلى الخادم المركزي. هل تقوم بالمزامنة بين التخزين المشفر وغير المشفر؟

  • نقل مجلدات كبيرة - الحلول التي جربتها جميعًا تواجه مشكلة عند نقل / إعادة تسمية ملف أو مجلد لا تفهمه المزامنة وتحميله مرة أخرى كشيء جديد ثم حذف النسخة القديمة. الرجاء المساعدة من خلال وضع علامة على أي حلول أعلاه قادرة على التعامل مع هذا (أظن أن الحلول القائمة على git لا تفعل ذلك لأن git لا تعاني من هذا بسبب عنوان المحتوى الذي يستخدمه ولكن لا أعرف على وجه اليقين كما ملاذ تستخدمها).

  • سعة القرص

  • النسخ الاحتياطية - التزامن ليس نسخة احتياطية. احذف ملفًا مهمًا عن طريق الخطأ وسيقوم العديد من ما سبق بحذف جميع نسخك الأخرى بسرور. أوصي القراءة قطعة مات هونان على التعرض للاختراق للحصول على حساب جيد لما يمكن أن يحدث إذا وضعت كل بيضك الرقمي في سلة رقمية واحدة ، إذا جاز التعبير.


أوصي بعدم مزامنة المجلد الرئيسي بأكمله ، ولكن بدلاً من ذلك اختيار مجلدات محددة لمزامنتها مثل Documents/، Pictures/ هذا سوف تجنب الألم من الاضطرار للتعامل مع قضايا الفضاء السرعة / الأداء / القرص من مزامنة تلقائيا كل شيء. كما يتجنب الاضطرار إلى الاحتفاظ بقوائم الاستبعاد.

بينما أستمر في محاولة العثور على شيء يعمل لي شخصياً ، سأحاول أن أبقي هذه الإجابة محدثة بمعلومات مفيدة. لقد جمعت المعلومات من جميع الإجابات الأخرى في إجابة واحدة كاملة.

المراجع:

  • LinuxFormat - February 2014 LXF180 p31، "Hosted Storage Roundup"

القرصنة / عن /


77



لدي خادم ث / خارج الوصول الجذر (الذي هو مطلوب لتثبيت انسجام ، على سبيل المثال). هل هناك برنامج نصي يمكنني الحصول عليه على جهاز العميل الخاص بي لا يحتاج إلى تثبيت على الخادم الخاص بي؟ - Ben Kushigian
لقد رأيت برنامجًا اسمه freefilesync (sourceforge.net/projects/freefilesync) ذكر عدة مرات هنا وهناك. قد يكون من الجدير بالذكر في قائمتك؟ - YoungFrog


انسجام قد يكون مرشحًا جيدًا:

Unison هي أداة مزامنة الملفات   ليونيكس وويندوز. انها تسمح اثنين   نسخ متماثلة من مجموعة من الملفات و   الدلائل ليتم تخزينها على مختلف   المضيفين (أو أقراص مختلفة على نفسه   المضيف) ، معدلة بشكل منفصل ، ثم   جلبت حتى الآن من خلال نشر   التغييرات في كل نسخة طبق الأصل إلى الآخر.

انها بالفعل المزامنة في اتجاهين. انظر تحديث الصوت عاليا.

تعلمت أن هناك بعض الأشياء القليلة التي لا تستطيع rsync القيام بها ، ويمكن أن توفر حلاً مساوياً أو أفضل ، لكن عليك أن تنتظر خبيراً من rsync للإستجابة لهذا الحل.

تحديث: نعم ، يمكن لـ Unison مزامنة أكثر من جهازين. من الآخرين دليل الاستخدام:

باستخدام انسجام لمزامنة أكثر من جهازين 
 
  تم تصميم انسجام لمزامنة أزواج من النسخ المتماثلة. ومع ذلك ، من الممكن استخدامه للحفاظ على مزامنة مجموعات كبيرة من الأجهزة عن طريق إجراء عمليات مزامنة متعددة.

إذا كنت بحاجة إلى القيام بذلك ، فإن الطريقة الأكثر موثوقية لتعيين الأمور هي تنظيم الآلات في "طبولوجيا النجوم" ، مع جهاز واحد تم تعيينه على أنه "محور" والباقي باسم "المتحدث" ، ومع مزامنة كل جهاز من أجهزة الكلام فقط مع المحور. وتتمثل الميزة الكبرى لطبولوجيا النجوم في أنها تقضي على احتمال الخلط بين "نزاعات زائفة" تنشأ عن حقيقة أن شركة Unison تقوم بحفظ أرشيف مستقل لكل زوج من المضيفين الذي يقوم بمزامنته.


27



لدي بعض التجارب السيئة مع انسجام ، لسبب ما من وقت لآخر بدلا من إضافة الملفات الجديدة من أجهزة الكمبيوتر الأخرى ، فإنه حذفها في أوقات أخرى كان يعمل بشكل جيد. - jhcaiced
أقترح تعديل المثال / b / c لمتابعة التوصية في الدليل بعدم إنشاء الحلقات. - Tim Abell
فيما يتعلق بك إشارة إلى rsync. لا لا يمكن القيام به بطريقة موثوقة اثنين من المزامنة. انظر إلى الإجابة التالية لمعرفة لماذا يمكن أن يتعامل انسجام مع الحالة التي يتعذر على rsync: stackoverflow.com/questions/4504357/... - ndemou


ما رأيك في وضع ملفاتك في نظام التحكم في الإصدار مثل SubVersion أو git؟

لا أقوم بإصدار النسخة الأصلية من المنزل بالكامل ، ولكن لا يوجد سوى عدد قليل من المذكرات مع بعض الأشياء المهمة. لكنني أفكر في التحويل إلى بوابة حيث يبدو أنها أفضل لهذا النوع من العمل. (بحث سريع سوف يرسل لك في الاتجاه الصحيح).

حظا سعيدا


تحديث: هناك تأثير جانبي لطيف مع git هو أنه من السهل الحصول على ملفات خاصة بالكمبيوتر ، نظرًا لأنك تحتاج فقط إلى وجود فرع لهذا الكمبيوتر (وفي git تحصل عليه افتراضيًا). لذلك لا تحتاج إلى أن يكون لديك نفس الملفات بالضبط في كل جهاز الكمبيوتر ، بل تحتاج فقط إلى أن تكون متشابهة ، ولديك فرع "رئيسي" مشترك مع الأشياء التي تريدها على جميع أجهزة الكمبيوتر المختلفة.


19



ييكيس. فكرة استخدام التحكم في النسخة لمزامنة الملفات تجعل حقاً زحف جلدي. - JohnD
نعم الفكرة غريبة لكنها مفيدة حقا. فكر في a dir مثل ~ / bin / للبرامج النصية المساعدة الخاصة ، هذا النوع من dir عظيم في نظام التحكم بالنسخة. في حين أن الدير مثل .kde ربما يتصرف بشكل سيء في نظام التحكم في الإصدار وسيتم وضعه في قائمة تجاهل للملف الذي لم يتم التعامل معه. - Johan
هذه طريقة رائعة للحفاظ على مزامنة ملفاتك ، عليك أن تعتاد على فكرة استخدام "git add" و "git rm" لإضافة / إزالة الملفات ولكنها تعمل جيدًا. - jhcaiced
أنا أحب هذه الفكرة لأنني أسيطر على جزء من الملفات في القمامة التي لدي في بيتي سيتم مشاركتها. والسؤال الوحيد هو كيفية إدارة الإلتزامات. أي بعض الملفات يجب أن تدخل في الالتزام الأولي ثم تعكس التغييرات لإظهار أنها تستند إلى نظام / etc / skel. - ony
هل يتم الحفاظ على زوجين من الفروع المنفصلة مع ملفاتك بشكل ملائم ، عندما تحاول مزامنة الدلائل؟ بالتأكيد ، إنه يعمل ، لكني لا أنصح (ز) بهذه المهمة. يمكنك بشكل عام استبعاد الملفات من معظم أدوات المزامنة (إما بالاسم ، أو المجلد ، أو غير ذلك) وما الذي تصفه (باستخدامه فقط لبعض الدلائل الفرعية المهمة) ، فهذا ليس مفيدًا في ما يتعلق بالسؤال الأصلي. - Chris


المشكلة الرئيسية الخاصة بك عند محاولة القيام بذلك هي تحديد كيفية دمج التغييرات ونشر الحذف وحل التعارضات. من الصعب القيام بذلك بطريقة آلية تمامًا ، خاصةً إذا كنت قد حصلت على إعداد جهاز كمبيوتر 3 يستخدمه العديد من الأشخاص.

إذا كنت تفصل بين المستخدمين ، فستصبح الأشياء أبسط بكثير. نظرًا لأن أحد المستخدمين لا يمكن أن يكون في مكانين في وقت واحد (وبالتالي توليد تعارضات) يمكنك إعداد مهمة rsync ليتم تشغيلها عند تسجيل الدخول إلى "الحصول على التغييرات" والخروج إلى "دفع التغييرات" ... إلى أحد أجهزة الكمبيوتر لديك سيكون سيد ... لذلك على هذا المستوى من تحبب كنت تزامن / الوطن / myuser في كل مرة بدلا من / الوطن / بأكمله. سيتم تشغيل تحسين إضافي (في حالة الأشخاص الذين لا يقومون بتسجيل الخروج) في البرنامج النصي للدفع بعد فترة قصيرة من عدم النشاط.

هناك الكثير من الحلول المحتملة الأخرى ، لكن لا يوجد حل سحري لهذه المشكلة بقدر علمي. من المحتمل أن تكون الخطوة الأولى هي التفكير في كيفية استخدامك للأجهزة والتوصل إلى سياسة المزامنة لتتناسب مع سلوك المستخدم.


6





أعتقد أنه يمكنك تحقيق ما تريد بشكل أفضل عن طريق NFS تركيب مجلد رئيسي مشترك. تحقق من هذه المادة http://www.linuxjournal.com/article/4880


5





هذا لن يوفر حلاً كاملاً ، ولكنه سيعطيك بداية:

قم بإعداد مهمة كرون كل ذلك في كثير من الأحيان إلى rsync الملفات. أستخدم أمرًا كما يلي:

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh user@10.10.0.1:/path/to/home/

سيستخدم هذا rsync لنسخ التغييرات المطلوبة فقط ، وليس إعادة نسخ كل شيء في كل مرة يتم فيها تشغيل الأمر.

--stats and --progress اختيارية وربما ينبغي استبعادها من البرامج النصية الخاصة بك

محتويات ملف rsync_backup_excludes.conf الخاص بي هي:

dev/*
proc/*
lost+found/*
mnt/*
sys/*

4



ستتم مزامنة Anacron عند تشغيل الجهاز ، مع تجنب الفتحات المفقودة بسبب التوقف. - Tim Abell
هذا ينسخ جذرك المحلي بأكمله إلى المجلد الرئيسي البعيد. هذا ليس ما طلب منه البروتوكول الاختياري ، ولا يمكنني تخيل لماذا يريد أي شخص ذلك ... - Cerin


الدفع lsyncd

Lsyncd الساعات واجهة مراقبة واجهة أشجار دليل محلي   (inotify أو fsevents). إنه يجمع ويجمع الأحداث لعدد قليل   ثانية ثم يولد عملية (أو أكثر) واحدة (أو أكثر) لمزامنة   التغييرات. افتراضيا هذا هو rsync. Lsyncd وبالتالي خفيفة الوزن على الهواء مباشرة   حل المرآة التي هي سهلة نسبيا لتثبيت لا تتطلب   أنظمة الملفات الجديدة أو blockdevices ولا تعوق نظام الملفات المحلي   أداء.

Rsync + ssh هو تكوين عمل متقدم يستخدم SSH للعمل   ينتقل الملف والدليل مباشرة إلى الهدف بدلاً من   إعادة إرسال وجهة الانتقال عبر السلك.

يمكن تحقيق customizaton الجميلة من خلال ملف التكوين.   يمكن حتى أن تتم كتابة توصيفات الإجراء المخصص من الصفر في المتتالية   طبقات تتراوح من نصوص shell إلى رموز مكتوبة بلغة Lua.Players تتراوح بين نصوص shell إلى رموز مكتوبة بلغة Lua.


4





ألقِ نظرة على صندوق الإسقاط http://www.getdropbox.com/  عبر منصة وين / لينكس / ماك


2



شكرا لكن لا. حاولت ذلك بالفعل. ليس ما أبحث عنه. - lamcro
دروببوإكس كبيرة وأنا أستخدم 2 جيجا مجانا لتخزين الروابط ، والصور ، وغيرها من البيانات المهمة غير المهمة بين المنزل والعمل وأجهزة الكمبيوتر المحمول الخاصة بي. هذا ليس ما تحتاجه في هذه الحالة ، ولكن في رأيي ، فإن دروببوإكس لديها بالتأكيد مكانها. - Matt Cofer