RSYNC: كيف يمكنني المزامنة في كلا الاتجاهين؟

StackOverflow https://stackoverflow.com/questions/1602324

  •  05-07-2019
  •  | 
  •  

سؤال

أريد استخدام rsync تزامن دليلان في كلا الاتجاهين.

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

هل يمكن أن يتم ذلك بواسطة RSYNC (من الأفضل في Linux-Way)?
إذا لم يكن كذلك ، فما هي الحلول الأخرى الموجودة؟

هل كانت مفيدة؟

المحلول

فقط قم بتشغيله مرتين ، مع وضع "أحدث" (-u أو -update flag) زائد -T (لنسخ الوقت المعدل للملف) ، -r (للمجلدات العودية) ، و -V (لإخراج المطوّل لمعرفة ما هو عليه عمل):

rsync -rtuv /path/to/dir_a/* /path/to/dir_b
rsync -rtuv /path/to/dir_b/* /path/to/dir_a

هذا لن يتعامل مع الحذف ، لكنني لست متأكدًا من وجود حل جيد لتلك المشكلة مع التزامن الدوري فقط.

نصائح أخرى

هل تعرف تلاشي ملف مزامنة?

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

لاحظ أيضًا أنه من المرونة الفشل:

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

شكرا Jsight

rsync -urv --progress dir_a dir_b && rsync -urv  --progress dir_b dir_a

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

rsync -ur dir_a dir_b && rsync -ur dir_b dir_a

يستخدم rsync <OPTIONS> [hostname:]source-dir [hostname:]dest-dir

فمثلا:

rsync -pogtEtvr --progress --bwlimit=2000 xxx-files different-stuff

سوف تتم مزامنة ملفات XXX مع ملفات مختلفة/xxx. إذا لم تكن ملفات مختلفة من طراز STUFF/XXX ، فسيقوم بإنشائها-أي نسخها.

-pogtEtv - مجرد مجموعة من الخيارات للحفاظ على بيانات تعريف الملف ، بالإضافة

--progress - إظهار تقدم المزامنة في الوقت الحقيقي - مفيد للغاية إذا قمت بنسخ الملفات الكبيرة

--bwlimit=2000 - يحدد أقصى سرعة للنسخ/المزامنة (BW = عرض النطاق الترددي)

ملاحظة RSYNC مهمة للغاية عند العمل عبر الشبكة في حالة الجهاز المحلي ، يمكنك استخدام أوامر مثل CP.

حظا طيبا وفقك الله!

أنا استخدم rsync مع inotifywait. عند تغيير أي ملف ، rsync سيتم تنفيذها.

inotifywait -m --exclude "$_LOG_FILE" -r -e create,delete,delete_self,modify,moved_to --format "%w%f" "$folder"

تحتاج إلى تشغيل inotifywait على كلا المضيف. يرجى التحقق من مثال inotifyWait

ما تحتاجه هو rclone. RCLONE ("RSYNC for Cloud Storage") هو برنامج Linux لسطر الأوامر لمزامنة الملفات والأدلة من وإلى مزودي التخزين السحابي المختلفين (Box و Dropbox و FTP وما إلى ذلك) وأنظمة الملفات المحلية. Rlone يدعم المزامنة المرآة فقط.

حل آخر أكثر رسوما والذي يتضمن مزامنة في الوقت الفعلي هو الاستخدام Freefilesync, والتي تشمل برنامج realtimsync. تدعم FreeFileSync مزامنة ثنائية الاتجاه ثنائية الاتجاه والتي تشمل معالجة الحذف.

FreFileSync gui

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top