it-swarm.asia

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

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

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

112
lamcro

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

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

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

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

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

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

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

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

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

  • dvcs-autosync - مكتوب بيثون ، يستخدم بوابة لتخزين ومشاركة التغييرات بين الأجهزة ، و XMPP لإبلاغ التغييرات.

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

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

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

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

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

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

  • CloudFS - تزامن نظام ملفات كامل ، يستند إلى نظام المجموعة

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


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

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

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

  • الوصول عن بُعد - هل ترغب في المزامنة بعيدًا عن شبكة LAN الخاصة بك (المعروفة أيضًا باسم المنزل) ، فكر في الآثار الأمنية المترتبة على ذلك.

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

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

  • سعة القرص

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


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

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

المراجع:

  • LinuxFormat - فبراير 2014 LXF180 ص 31 ، "تقرير التخزين المستضاف"

القرصنة/عن /

86
Tim Abell

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

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

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

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

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

استخدام Unison لمزامنة أكثر من جهازين

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

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

28
nagul

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

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

حظا سعيدا


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

19
Johan

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

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

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

6
Ira Cooke

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

5
jspeaks

تحقق من lsyncd

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

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

يمكن تحقيق التخصيص الحبيبي الدقيق من خلال ملف التكوين. يمكن كتابة تكوينات الإجراء المخصص من البداية في طبقات متتالية تتراوح من البرامج النصية Shell إلى التعليمات البرمجية المكتوبة بلغة Lua.

4
eric

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

قم بإعداد وظيفة cron في كل مرة لإعادة مزامنة الملفات. أستخدم أمرًا كما يلي:

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh [email protected]:/path/to/home/

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

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

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

dev/*
proc/*
lost+found/*
mnt/*
sys/*
4
Matt Cofer

جبل /home من كمبيوتر إلى آخر. Automount يعمل بشكل جيد لهذا الغرض.

2
Xenoactive

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

2
Boxdog

PowerFolder - مزامنة الملفات والمجلدات المزامنة والتخزين عن بعد والنسخ الاحتياطي ومشاركة الملفات الخاصة. قم بمزامنة الكمبيوتر الشخصي المنزلي والمكتبي أو مشاركة صور العطلات أو العمل معًا في المستندات تعمل تقنية نظير إلى نظير الآمنة من PowerFolder عبر الإنترنت أو في الشبكة المحلية.

1
Molly7244

جرب dvcs-autosync .

هذا يعتمد على git ، ويستخدم XMPP لإخطار العملاء المتصورين بتغييرات الملف ويتفاعل مع أحداث تغيير الملف عبر تغييرات inode. لذلك دائمًا ما يتم إخبارك مباشرة بعد تغيير الملف ، في حالة وجود تعارضات ، فإنه يعتمد على الأساليب المؤكدة في بوابة.

لقد تم استخدامه لفترة من الوقت الآن كبديل دروببوإكس عبر مفاتيح SSH العامة وأنها حقا المهمة.

1
schlypel

إذا كنت تريد أيضًا مزامنة التكوينات - فالأدوات المذكورة أعلاه عاجزة تمامًا: غالبًا ما يتم تغيير التكوينات ، وستؤدي العديد من ملفات السجل إلى حدوث تعارضات حتى لا يمكن دمجها.
الخداع بسيط وسخيف: لديّ محطة عمل رئيسية ، ويتم نسخ جميع الملفات من "~" إلى الثانية "Slave". في اللحظة التي أدركت فيها أنني بحاجة إلى تعديل شيء ما - أقوم بذلك على Master ، بينما يلتقط Slave هذه التغييرات على المزامنة.

أيضًا ، يجب أن تعمل بعض البرامج النصية للباش بشكل مختلف على هذه الأجهزة ، لذلك قمت بتحرير /etc/bash.bashrc:

تصدير OOHOST = ماجستير

الآن ، تعرف البرامج النصية المضيف الذي تخدمه ؛)

1
kolypto

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

1
Ilari Kajaste

يمكنك استخدام برنامج نصي للمزامنة مثل osync يمكنه نشر الملفات المحذوفة وتحديث الملفات المعدلة فقط. http://www.netpower.fr/osync osync يستند إلى rsync لكن يمكنه معالجة الكثير من سيناريوهات المزامنة بين المجلدات المحلية أو المجلدات البعيدة عبر ssh.

0
Orsiris de Jong

أستخدم SyncTwoFolders لنظام Mac و Syncback للكمبيوتر - أول واحد لأجهزة Mac الثلاثة في المنزل (كمبيوتر محمول شامل) ، والثاني لجهاز الكمبيوتر الخاص بي في العمل. يحتوي كلا البرنامجين على العديد من خيارات النسخ الاحتياطي والمزامنة مما يجعل هذا الأمر سهلاً بمجرد إعداد الإعدادات المسبقة. سهل جدا! أنا متأكد من وجود إصدارات أخرى من البرامج المماثلة المتوفرة لنظامي Linux و Ubuntu.

0
Henk the ThinkTank

الحلول التي يجب مراعاتها:

  • بصندوق الإسقاط.
    العيوب الرئيسية: ليست مجانية لأي كمية معقولة من البيانات. وإلا فإنه يعمل IMHO لا تشوبه شائبة

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

0
Rabarberski