دليل شامل لاستخدام Rsync لمزامنة المجلدات بين الجهاز المحلي والخادم
في عالم إدارة الأنظمة والشبكات، يعتبر نقل الملفات ومزامنة المجلدات من المهام الأساسية التي تواجه مديري الأنظمة والمطورين على حد سواء. من بين الأدوات القوية والفعالة التي تستخدم لهذه المهمة، تبرز أداة Rsync كواحدة من أهم وأشهر الأدوات المفتوحة المصدر. توفر Rsync طريقة ذكية وسريعة لمزامنة الملفات والمجلدات بين جهازين مختلفين، سواء كانا جهازًا محليًا وخادمًا عن بُعد أو بين جهازين عن بُعد. هذا المقال يقدم شرحًا تفصيليًا حول كيفية استخدام Rsync لمزامنة المجلدات بين الجهاز المحلي والخادم، مع التركيز على الجوانب العملية، التقنيات، وأفضل الممارسات.
ما هو Rsync؟
Rsync هي أداة نقل ومزامنة ملفات تستخدم بروتوكول نقل فعال يعتمد على مقارنة الفروقات بين الملفات في المصدر والوجهة، مما يسمح بنقل التغييرات فقط وليس الملفات كاملة، وبالتالي توفير الوقت وعرض النطاق الترددي للشبكة.
تم تطوير Rsync لتوفير وسيلة ذكية وموثوقة لمزامنة البيانات، وتتميز بالسرعة، القدرة على استئناف النقل بعد انقطاع الاتصال، والدعم الكبير لأنظمة Linux وUnix، كما تتوفر نسخ منها لأنظمة Windows عبر أدوات مساعدة.
لماذا نستخدم Rsync لمزامنة المجلدات؟
-
كفاءة نقل البيانات: Rsync يقوم بنقل التغييرات فقط داخل الملفات بدلاً من نقل الملف بأكمله، مما يقلل من حجم البيانات المنقولة.
-
دعم النقل الآمن: يمكن استخدام Rsync مع SSH لتأمين نقل الملفات.
-
المرونة الكبيرة: يدعم مجموعة واسعة من الخيارات لتحديد الملفات والمجلدات التي تريد مزامنتها.
-
استئناف النقل: عند انقطاع الاتصال، يمكن استئناف نقل الملفات من النقطة التي توقف عندها.
-
التعامل مع الأذونات والروابط الرمزية: يحافظ على أذونات الملفات والروابط الرمزية، مما يجعله مثاليًا لمزامنة المجلدات التي تحتوي على ملفات نظام.
كيفية تثبيت Rsync
على نظام Linux
في معظم توزيعات Linux، تكون Rsync مثبتة بشكل افتراضي، وإذا لم تكن مثبتة يمكن تثبيتها باستخدام مدير الحزم:
bashsudo apt-get install rsync # في توزيعات ديبيان وأوبونتو
sudo yum install rsync # في توزيعات ريدهات وفيدورا
على نظام Windows
على Windows يمكن استخدام Rsync من خلال:
-
تثبيت Cygwin الذي يوفر بيئة شبيهة بـ Linux.
-
استخدام أدوات مثل cwRsync أو تثبيت Windows Subsystem for Linux (WSL) وتثبيت Rsync داخلها.
بناء جملة الأمر الأساسي لـ Rsync
الأمر الأساسي لـ Rsync يتبع الصيغة التالية:
bashrsync [خيارات] المصدر الوجهة
-
المصدر: المجلد أو الملف الذي ترغب في مزامنته.
-
الوجهة: المكان الذي تريد نسخ الملفات إليه (جهاز محلي أو خادم بعيد).
مزامنة مجلد من الجهاز المحلي إلى الخادم
لنقل مجلد من الجهاز المحلي إلى خادم بعيد عبر SSH، يكون الأمر:
bashrsync -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/: مسار المجلد الهدف على الخادم.
مزامنة مجلد من الخادم إلى الجهاز المحلي
لعكس العملية ونقل المجلد من الخادم إلى الجهاز المحلي:
bashrsync -avz user@remote_server:/path/to/remote/folder/ /path/to/local/folder/
التعامل مع المسارات والمجلدات
-
إذا وضعت الشرطة المائلة
/في نهاية مسار المصدر، يتم نقل محتويات المجلد فقط. -
إذا لم تضع الشرطة المائلة، يتم نقل المجلد نفسه مع محتوياته.
مثال توضيحي:
bashrsync -avz /home/user/docs/ user@remote:/backup/docs/
ينقل محتويات docs فقط إلى مجلد docs على الخادم.
بينما:
bashrsync -avz /home/user/docs user@remote:/backup/
ينقل مجلد docs كاملاً إلى مجلد /backup، فيصبح المسار الكامل /backup/docs.
خيارات متقدمة في Rsync
1. الحذف التلقائي للملفات التي لم تعد موجودة في المصدر
لجعل المزامنة متطابقة تمامًا، أي حذف الملفات من الوجهة إذا لم تعد موجودة في المصدر:
bashrsync -avz --delete /source/path/ user@remote:/destination/path/
2. استثناء ملفات أو مجلدات معينة
يمكنك استثناء ملفات أو مجلدات من عملية المزامنة باستخدام الخيار --exclude:
bashrsync -avz --exclude '*.log' /source/path/ user@remote:/destination/path/
هذا يستثني جميع الملفات التي تنتهي بامتداد .log.
يمكن إضافة أكثر من استثناء:
bashrsync -avz --exclude '*.log' --exclude 'temp/' /source/path/ user@remote:/destination/path/
3. استخدام الاتصال عبر SSH وتغيير المنفذ
إذا كان الخادم يستخدم منفذ SSH مختلفًا عن المنفذ الافتراضي (22):
bashrsync -avz -e 'ssh -p 2222' /source/path/ user@remote:/destination/path/
4. استئناف نقل الملفات الكبيرة
يمكنك استخدام خيار --partial أو --partial-dir لاستئناف نقل الملفات التي تم قطعها:
bashrsync -avz --partial /source/path/ user@remote:/destination/path/
جدول مقارنة خيارات Rsync الأساسية والمتقدمة
| الخيار | الوصف | الاستخدام النموذجي |
|---|---|---|
-a |
الوضع الأرشيفي (نسخ الأذونات والروابط) | مزامنة كاملة للمجلدات |
-v |
وضع التفصيل | عرض تقدم النقل |
-z |
ضغط البيانات أثناء النقل | تحسين سرعة النقل على الشبكات البطيئة |
--delete |
حذف الملفات في الوجهة غير الموجودة في المصدر | مزامنة متطابقة |
--exclude |
استثناء ملفات أو مجلدات محددة | تجاهل ملفات غير مرغوب فيها |
-e "ssh -p PORT" |
تحديد منفذ SSH مختلف | الاتصال بخادم SSH على منفذ غير افتراضي |
--partial |
استئناف نقل الملفات المنقطعة | نقل ملفات كبيرة |
نصائح مهمة عند استخدام Rsync
-
دراسة الأوامر قبل التنفيذ: يفضل دائمًا تجربة الأمر مع خيار
--dry-runلمعرفة ماذا سيتم نقله أو حذفه دون تنفيذ فعلي:
bashrsync -avz --delete --dry-run /source/path/ user@remote:/destination/path/
-
النسخ الاحتياطي الدوري: يمكن جدولة أوامر Rsync عبر Cron على لينكس لأتمتة النسخ الاحتياطي.
-
الاهتمام بحقوق المستخدم: تأكد من أن المستخدم على الخادم يمتلك الصلاحيات اللازمة على مجلد الوجهة.
-
تأمين الاتصال: استخدم دائمًا SSH مع مفاتيح التوثيق لتأمين الاتصال.
-
التحقق من مساحة التخزين: تأكد من وجود مساحة كافية في الوجهة قبل عملية المزامنة.
حالات استخدام عملية لـ Rsync
مزامنة نسخ احتياطية
يستخدم Rsync بشكل واسع في عمل نسخ احتياطية تلقائية للمجلدات المهمة، مثل ملفات المشاريع البرمجية أو ملفات قواعد البيانات (بعد تصديرها)، وذلك بتحديد مجلد المصدر (الملفات المراد نسخها) ومجلد الوجهة على الخادم أو القرص الخارجي.
تحديث المواقع الإلكترونية
في حالة وجود موقع ويب مستضاف على خادم بعيد، يمكن استخدام Rsync لمزامنة ملفات الموقع بعد تحديثها محليًا، حيث يتم رفع الملفات المعدلة فقط بسرعة وكفاءة.
نقل الملفات بين خوادم متعددة
يمكن استخدام Rsync لنقل أو مزامنة ملفات كبيرة بين خوادم مختلفة ضمن نفس الشبكة أو عبر الإنترنت مع المحافظة على الأذونات والروابط الرمزية.
استنتاج
تعتبر أداة Rsync من الأدوات الأكثر فاعلية وموثوقية في مجال مزامنة الملفات والمجلدات بين الأجهزة المختلفة، سواء محليًا أو عبر الشبكة، لما تقدمه من مزايا فريدة تشمل كفاءة نقل البيانات، الأمان، والمرونة الكبيرة في التحكم بعمليات النقل.
مع إتقان استخدام خياراتها المتنوعة ودمجها مع بروتوكولات آمنة مثل SSH، يمكن الاعتماد على Rsync كحل أساسي في جميع مهام المزامنة، سواء في بيئات العمل البسيطة أو أنظمة الإنتاج المعقدة.

