ديف أوبس

مزامنة الملفات باستخدام Rsync

دليل شامل لاستخدام Rsync لمزامنة المجلدات بين الجهاز المحلي والخادم

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


ما هو Rsync؟

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

تم تطوير Rsync لتوفير وسيلة ذكية وموثوقة لمزامنة البيانات، وتتميز بالسرعة، القدرة على استئناف النقل بعد انقطاع الاتصال، والدعم الكبير لأنظمة Linux وUnix، كما تتوفر نسخ منها لأنظمة Windows عبر أدوات مساعدة.


لماذا نستخدم Rsync لمزامنة المجلدات؟

  • كفاءة نقل البيانات: Rsync يقوم بنقل التغييرات فقط داخل الملفات بدلاً من نقل الملف بأكمله، مما يقلل من حجم البيانات المنقولة.

  • دعم النقل الآمن: يمكن استخدام Rsync مع SSH لتأمين نقل الملفات.

  • المرونة الكبيرة: يدعم مجموعة واسعة من الخيارات لتحديد الملفات والمجلدات التي تريد مزامنتها.

  • استئناف النقل: عند انقطاع الاتصال، يمكن استئناف نقل الملفات من النقطة التي توقف عندها.

  • التعامل مع الأذونات والروابط الرمزية: يحافظ على أذونات الملفات والروابط الرمزية، مما يجعله مثاليًا لمزامنة المجلدات التي تحتوي على ملفات نظام.


كيفية تثبيت Rsync

على نظام Linux

في معظم توزيعات Linux، تكون Rsync مثبتة بشكل افتراضي، وإذا لم تكن مثبتة يمكن تثبيتها باستخدام مدير الحزم:

bash
sudo apt-get install rsync # في توزيعات ديبيان وأوبونتو sudo yum install rsync # في توزيعات ريدهات وفيدورا

على نظام Windows

على Windows يمكن استخدام Rsync من خلال:

  • تثبيت Cygwin الذي يوفر بيئة شبيهة بـ Linux.

  • استخدام أدوات مثل cwRsync أو تثبيت Windows Subsystem for Linux (WSL) وتثبيت Rsync داخلها.


بناء جملة الأمر الأساسي لـ Rsync

الأمر الأساسي لـ Rsync يتبع الصيغة التالية:

bash
rsync [خيارات] المصدر الوجهة
  • المصدر: المجلد أو الملف الذي ترغب في مزامنته.

  • الوجهة: المكان الذي تريد نسخ الملفات إليه (جهاز محلي أو خادم بعيد).


مزامنة مجلد من الجهاز المحلي إلى الخادم

لنقل مجلد من الجهاز المحلي إلى خادم بعيد عبر SSH، يكون الأمر:

bash
rsync -avz /path/to/local/folder/ user@remote_server:/path/to/remote/folder/

شرح الخيارات:

  • -a : الوضع الأرشيفي للحفاظ على الأذونات، الروابط الرمزية، التوقيتات، والمستخدمين.

  • -v : وضع التفصيل (يعرض تقدم النقل).

  • -z : ضغط البيانات أثناء النقل لتقليل حجم البيانات المرسلة.

  • /path/to/local/folder/ : مسار المجلد المحلي، ولاحظ وجود الشرطة المائلة في النهاية تعني “محتويات المجلد”.

  • user@remote_server : اسم المستخدم وعنوان الخادم البعيد.

  • /path/to/remote/folder/ : مسار المجلد الهدف على الخادم.


مزامنة مجلد من الخادم إلى الجهاز المحلي

لعكس العملية ونقل المجلد من الخادم إلى الجهاز المحلي:

bash
rsync -avz user@remote_server:/path/to/remote/folder/ /path/to/local/folder/

التعامل مع المسارات والمجلدات

  • إذا وضعت الشرطة المائلة / في نهاية مسار المصدر، يتم نقل محتويات المجلد فقط.

  • إذا لم تضع الشرطة المائلة، يتم نقل المجلد نفسه مع محتوياته.

مثال توضيحي:

bash
rsync -avz /home/user/docs/ user@remote:/backup/docs/

ينقل محتويات docs فقط إلى مجلد docs على الخادم.

بينما:

bash
rsync -avz /home/user/docs user@remote:/backup/

ينقل مجلد docs كاملاً إلى مجلد /backup، فيصبح المسار الكامل /backup/docs.


خيارات متقدمة في Rsync

1. الحذف التلقائي للملفات التي لم تعد موجودة في المصدر

لجعل المزامنة متطابقة تمامًا، أي حذف الملفات من الوجهة إذا لم تعد موجودة في المصدر:

bash
rsync -avz --delete /source/path/ user@remote:/destination/path/

2. استثناء ملفات أو مجلدات معينة

يمكنك استثناء ملفات أو مجلدات من عملية المزامنة باستخدام الخيار --exclude:

bash
rsync -avz --exclude '*.log' /source/path/ user@remote:/destination/path/

هذا يستثني جميع الملفات التي تنتهي بامتداد .log.

يمكن إضافة أكثر من استثناء:

bash
rsync -avz --exclude '*.log' --exclude 'temp/' /source/path/ user@remote:/destination/path/

3. استخدام الاتصال عبر SSH وتغيير المنفذ

إذا كان الخادم يستخدم منفذ SSH مختلفًا عن المنفذ الافتراضي (22):

bash
rsync -avz -e 'ssh -p 2222' /source/path/ user@remote:/destination/path/

4. استئناف نقل الملفات الكبيرة

يمكنك استخدام خيار --partial أو --partial-dir لاستئناف نقل الملفات التي تم قطعها:

bash
rsync -avz --partial /source/path/ user@remote:/destination/path/

جدول مقارنة خيارات Rsync الأساسية والمتقدمة

الخيار الوصف الاستخدام النموذجي
-a الوضع الأرشيفي (نسخ الأذونات والروابط) مزامنة كاملة للمجلدات
-v وضع التفصيل عرض تقدم النقل
-z ضغط البيانات أثناء النقل تحسين سرعة النقل على الشبكات البطيئة
--delete حذف الملفات في الوجهة غير الموجودة في المصدر مزامنة متطابقة
--exclude استثناء ملفات أو مجلدات محددة تجاهل ملفات غير مرغوب فيها
-e "ssh -p PORT" تحديد منفذ SSH مختلف الاتصال بخادم SSH على منفذ غير افتراضي
--partial استئناف نقل الملفات المنقطعة نقل ملفات كبيرة

نصائح مهمة عند استخدام Rsync

  1. دراسة الأوامر قبل التنفيذ: يفضل دائمًا تجربة الأمر مع خيار --dry-run لمعرفة ماذا سيتم نقله أو حذفه دون تنفيذ فعلي:

bash
rsync -avz --delete --dry-run /source/path/ user@remote:/destination/path/
  1. النسخ الاحتياطي الدوري: يمكن جدولة أوامر Rsync عبر Cron على لينكس لأتمتة النسخ الاحتياطي.

  2. الاهتمام بحقوق المستخدم: تأكد من أن المستخدم على الخادم يمتلك الصلاحيات اللازمة على مجلد الوجهة.

  3. تأمين الاتصال: استخدم دائمًا SSH مع مفاتيح التوثيق لتأمين الاتصال.

  4. التحقق من مساحة التخزين: تأكد من وجود مساحة كافية في الوجهة قبل عملية المزامنة.


حالات استخدام عملية لـ Rsync

مزامنة نسخ احتياطية

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

تحديث المواقع الإلكترونية

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

نقل الملفات بين خوادم متعددة

يمكن استخدام Rsync لنقل أو مزامنة ملفات كبيرة بين خوادم مختلفة ضمن نفس الشبكة أو عبر الإنترنت مع المحافظة على الأذونات والروابط الرمزية.


استنتاج

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

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


المراجع