Unison: إعداد وأتمتة مزامنة الدليل ثنائي الاتجاه على خادمين


Getty Images / iStockphoto يمكن

حل مشكلة مزامنة الدلائل على خادمين مع عائلة Linux من أنظمة التشغيل على متن الطائرة بسهولة إذا كنت تستخدم أدوات متخصصة. دعونا نرى كيف يمكن القيام بذلك مع Unison .

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

تشبه Unison أداة مزامنة rsync ، ولكنها بخلاف ذلك ، تدعم المزامنة ثنائية الاتجاه. أي أنه يسمح لك بمزامنة نسختين من الملفات وتحديث كل نسخة اعتمادًا على التغييرات التي تم إجراؤها.

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

ما هو مطلوب أيضًا لاستخدام Unison


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

سأستخدم هذه الخوادم:

  • الخادم 1 - 192.168.1.6
  • الخادم 2 - 192.168.1.19

كيفية تثبيت Unison


أول شيء يجب الاهتمام به هو تثبيت Unison. يجب أن يتم ذلك على كلا الخادمين. انتقل إلى كلا الخادمين وأدخل الأمر:

sudo apt-get install unison unison-all -y

انتظر حتى يكتمل تثبيت Unison والمتابعة.

كيفية إنشاء ونسخ مفتاح SSH


أولا، نحن توليد مفتاح SSH فقط ل SERVER1 . للقيام بذلك ، استخدم الأمر:

ssh-keygen -t rsa

عندما يُطلب منك إدخال كلمة مرور ، ما عليك سوى الضغط على مفتاح ENTER.
عند إنشاء المفتاح ، انسخه إلى server2 باستخدام الأمر:

ssh-copy-id 192.168.1.19

بمجرد نسخ المفتاح ، يمكنك المتابعة مباشرة إلى العمل.

كيفية استخدام Unison


لنقم بإنشاء دليل اختبار واحد لكل خادم لأغراض الاختبار. أمر server1 :

sudo mkdir -p /data1

بالنسبة للخادم 2 :

sudo mkdir -p /data2

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

sudo chown -R $USER.$USER /data2

افعل نفس الشيء مع server1 :

sudo chown -R $USER.$USER /data1

ضع بعض ملفات الاختبار في / data1 :

touch /data1/{test1,test2,test3}

نقوم بمزامنة أدلةنا مع الأمر التالي (من خلال تشغيله على server1 ):

unison /data1 ssh://192.168.1.19//data2

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

لذا اشرب الشاي في المرة القادمة. في هذه الأثناء ، اضغط على Enter لبدء العملية. بعد القيام بذلك ، سيُطلب منك تأكيد مزامنة كل ملف. عند الانتهاء ، أدخل "y" للمتابعة.

نظرًا لأننا نقوم فقط بمزامنة ثلاثة ملفات اختبار ، فسيحدث ذلك بسرعة كبيرة وسيعيدك إلى shell bash. للتأكد من مزامنة الملفات ، انتقل إلى server2وأدخل الأمر:

ls /data2

علاوة على ذلك ، سيبلغ النظام أن ملفات test1 و test2 و test3 موجودة في الدليل / data2 :



نجحنا: قام Unison بمزامنة كلا الدلائل.

كيفية بدء Unison دون الحاجة إلى تفاعل المستخدم


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

nano ~/.unison/default.prf

عندما يفتح ملف التكوين للتحرير ، أضف سطرين إليه:

auto=true
batch=true

ثم احفظ وأغلق الملف.
الآن لن يزعجك Unison مع التفاهات. لكن هذا ليس كل شيء.

كيفية إنشاء مهمة Cron Scheduler


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

sudo nano /usr/local/bin/unisonsync

يجب إضافة ما يلي إلى هذا الملف:

#!/bin/bash/
unison /data1 ssh://192.168.1.19//data2

بعد ذلك ، تحتاج إلى إعطاء البرنامج النصي الحق في التنفيذ:

sudo chmod ugo+x /usr/local/bin/unisonsync

أنشئ وظيفة لـ Cron باستخدام الأمر:

crontab -e

بعد ذلك النوع:

*/5 * * * * /usr/local/bin/unisonsync &> /dev/null

الآن ستبدأ المزامنة تلقائيًا كل 5 دقائق.

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



كإعلان


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


All Articles