rsync هو أداة قوية في سطر الأوامر لمزامنة ونسخ الملفات والمجلدات بسرعة وكفاءة. يُستخدم على نطاق واسع في أنظمة Linux وUnix بفضل آلية نقل الفروقات فقط بين المصدر والوجهة، مما يسمح بمزامنة كميات كبيرة من الملفات دون إهدار الموارد. يأتي rsync مثبتًا بشكل افتراضي في العديد من توزيعات Linux مثل Ubuntu، ويُعد أداة لا غنى عنها لمسؤولي السيرفرات والمطورين.
مزايا استخدام rsync على Ubuntu
على Ubuntu، يُعتبر rsync فعالًا جدًا في عمليات النسخ الاحتياطي اليومي أو مزامنة مجلدات متعددة. من خلال كتابة بضعة أوامر في الطرفية، يمكنك نقل الملفات بسرعة محليًا أو عبر الشبكة، دون الحاجة للاعتماد على واجهات رسومية. خاصةً في الحالات التالية:
النسخ الاحتياطي المنتظم إلى قرص خارجي أو NAS
مزامنة مجلدات المشاريع أثناء التطوير
نشر الملفات على الخوادم البعيدة
تحسين التوافر عبر نسخ الملفات المتطابقة (mirroring)
الفرق بين rsync والأوامر الأخرى
مقارنةً بأمر cp، يقوم rsync بنقل الفروقات فقط بين المصدر والوجهة، مما يقلل من وقت العملية بشكل كبير. كما يتميز عن scp بإمكانياته في الاستئناف بعد الانقطاع، وتحديد حدود سرعة النقل (Bandwidth)، بالإضافة إلى القدرة على الحفاظ على خصائص الملفات مثل الملكية والصلاحيات والطوابع الزمنية أثناء النقل.
هدف هذا المقال
في هذا المقال، سنشرح بالتفصيل كيفية تثبيت واستخدام rsync على بيئة Ubuntu، مع أمثلة واقعية على الأوامر وحالات الاستخدام. سنركز أيضًا على الأدوات الرسومية وحلول المشاكل لتسهيل البدء حتى للمبتدئين، ونستعرض خطوات الاستفادة القصوى من rsync خطوة بخطوة.
2. كيفية تثبيت rsync على Ubuntu
التحقق مما إذا كان rsync مثبتًا مسبقًا على Ubuntu
في معظم بيئات Ubuntu، يكون rsync مثبتًا مسبقًا بشكل افتراضي. للتحقق من توفره، نفذ الأمر التالي في الطرفية:
rsync --version
إذا ظهر رقم الإصدار، فهذا يعني أن rsync مثبت بالفعل وجاهز للاستخدام.
خطوات تثبيت rsync إذا لم يكن مثبتًا
إذا ظهرت رسالة مثل “command not found” أو “rsync: command not found”، يمكنك تثبيته بهذه الخطوات:
تحديث قائمة الحزم:
sudo apt update
تثبيت rsync:
sudo apt install rsync
التحقق من التثبيت بعرض رقم الإصدار:
rsync --version
إذا ظهرت معلومات الإصدار، فقد تم التثبيت بنجاح.
هل من الضروري التثبيت عبر snap أو طرق أخرى؟
تثبيت rsync عبر APT هو الخيار الموصى به والأكثر استقرارًا في Ubuntu. يتوفر أيضًا عبر snap، ولكن غالبًا ما يكون الإصدار في مستودعات APT كافيًا لمعظم الاستخدامات، ويوفر استقرارًا وتوافقًا أفضل. ينصح بالاعتماد على APT إلا إذا كان هناك سبب خاص لاستخدام طريقة أخرى.
ملاحظات مهمة أثناء التثبيت
قد تحتاج بعض إصدارات Ubuntu القديمة إلى تحديث المستودعات.
يجب استخدام sudo لأن التثبيت يتطلب صلاحيات المدير.
تأكد من استقرار اتصال الإنترنت أثناء التثبيت لتجنب الأخطاء.
3. الاستخدام الأساسي لـ rsync
البنية الأساسية لأوامر rsync
أوامر rsync مرنة وبسيطة في الوقت نفسه. الصيغة الأساسية:
rsync [خيارات] مصدر الوجهة
على سبيل المثال، لنسخ محتوى /home/user/documents/ إلى /mnt/backup/:
rsync -av /home/user/documents/ /mnt/backup/
في هذا الأمر:
-a: وضع الأرشفة (يحافظ على بنية المجلدات والصلاحيات والملكية)
-v: إخراج تفاصيل الملفات المنقولة
الفرق بين وجود الشرطة المائلة (/) في نهاية المسار
في rsync، وجود الشرطة المائلة في نهاية المسار يؤثر على طريقة النسخ:
/home/user/documents/ (مع الشرطة المائلة)
→ سيتم نسخ محتوى المجلد فقط (مثال: file1.txt, file2.txt إلخ)
/home/user/documents (بدون الشرطة المائلة)
→ سيتم نسخ المجلد نفسه ومحتواه (مثال: /mnt/backup/documents/file1.txt)
هذه النقطة مهمة جدًا ويجب الانتباه إليها حسب الحاجة.
أكثر الخيارات استخدامًا في rsync
rsync يوفر العديد من الخيارات، وهذه أكثرها شيوعًا:
الخيار
الوصف
-a
وضع الأرشفة (نسخ متكرر مع الحفاظ على الخصائص)
-v
عرض تفاصيل الملفات المنقولة
-n
محاكاة العملية دون تنفيذ (dry run)
--progress
عرض تقدم النسخ
--delete
حذف الملفات من الوجهة غير الموجودة في المصدر
كيفية التأكد من نتيجة الأمر قبل التنفيذ
للتحقق من الملفات التي سيتم نقلها دون تنفيذ العملية فعليًا، استخدم الخيار -n أو --dry-run:
الخيار -z: ضغط البيانات أثناء الإرسال (مفيد عند ضعف سرعة الإنترنت).
user@host: حدد اسم المستخدم واسم الخادم أو IP.
الإعداد الأولي وتفعيل المصادقة بالمفتاح
عند الاتصال لأول مرة بخادم بعيد، قد يظهر لك تحذير التحقق من الهوية. أدخل “yes” للمتابعة. للعمليات المتكررة، يفضل تفعيل المصادقة بمفتاح SSH لتجنب إدخال كلمة المرور في كل مرة:
إنشاء مفتاح SSH محليًا (إذا لم يوجد):
ssh-keygen -t rsa
نسخ المفتاح للخادم البعيد:
ssh-copy-id user@example.com
بعد ذلك، يمكنك استخدام rsync بدون إدخال كلمة المرور.
تحديد رقم المنفذ عند الحاجة
إذا كان الخادم البعيد يستخدم منفذ SSH مختلف عن 22، حدد المنفذ عبر الخيار -e:
تكمن قوة rsync في خياراته الكثيرة التي تمنحه مرونة شديدة وكفاءة عالية. ليس فقط لنقل الملفات، بل يمكن الاعتماد عليه لمزامنة ذكية وسريعة وآمنة في جميع الاستخدامات.
6. مقدمة إلى أداة Grsync الرسومية
موصى بها للمبتدئين أو من لا يفضل الطرفية
rsync قوي للغاية لكن التعامل معه يتم عبر سطر الأوامر. للمبتدئين أو من يفضلون الواجهات الرسومية، يوجد برنامج Grsync الذي يتيح نفس مزايا rsync لكن عبر واجهة سهلة الاستخدام.
كيفية تثبيت Grsync (على Ubuntu)
يمكنك تثبيت Grsync بسهولة باستخدام APT:
sudo apt update
sudo apt install grsync
بعد التثبيت ستجد “Grsync” في قائمة التطبيقات ويمكنك تشغيله بواجهة رسومية.
الاستخدام الأساسي لـ Grsync
واجهة Grsync بسيطة وتحتوي على:
إدخال مسارات المصدر والوجهة
خيارات أساسية مثل “نسخ متكرر”، “الحفاظ على الخصائص”، “حذف من الوجهة”
تحديد أنماط الاستثناء
زر لتجربة التشغيل دون تنفيذ فعلي (dry run)
بعد الضبط، اضغط زر “تنفيذ” ليبدأ مزامنة الملفات عبر rsync في الخلفية.
إدارة ملفات التعريف في Grsync لتسهيل العمليات المتكررة
يمكنك حفظ إعداداتك كملفات تعريف، مما يسهل عليك إدارة عدة عمليات نسخ احتياطي أو مزامنة مختلفة.
مثال:
الملف الشخصي 1: نسخ احتياطي إلى USB
الملف الشخصي 2: مزامنة مع NAS
الملف الشخصي 3: نسخ متطابق مع خادم خارجي
كل ذلك متاح بسهولة من خلال الواجهة الرسومية.
مزايا وعيوب استخدام Grsync
المزايا
العيوب
سهولة التشغيل دون الحاجة للأوامر
بعض الخيارات المتقدمة غير متاحة من خلال الواجهة
إمكانية مراجعة الخيارات أثناء الإعداد
عرض النتائج قد يكون أقل وضوحًا لمن اعتادوا على الطرفية
سهولة البدء بأمان (dry run بزر واحد)
المرونة أقل من سطر الأوامر في بعض الحالات
7. المشاكل الشائعة وحلولها
عدم الحفاظ على صلاحيات أو ملكية الملفات
المشكلة: تغيّر ملكية الملفات أو صلاحياتها في الوجهة. السبب: تنفيذ rsync بدون صلاحيات كافية أو بدون خيار -a. الحل:
تأكد من استخدام -a في الأمر.
استخدم sudo إذا لزم الأمر.
sudo rsync -a /source/ /destination/
تجاهل الروابط الرمزية (Symlinks)
المشكلة: عدم نسخ الملفات الرمزية أو نسخها كملفات حقيقية. السبب: الإعدادات الافتراضية لـ rsync أو الخيارات المستخدمة. الحل:
لنسخ الروابط كما هي: استخدم -a.
لنسخ الهدف الفعلي: أضف --copy-links.
ظهور رسالة “Permission denied”
المشكلة: ظهور خطأ في الوصول لبعض الملفات أو المجلدات. السبب: عدم وجود صلاحيات كافية. الحل:
نفذ الأمر باستخدام sudo.
تحقق من صلاحيات المجلدات المعنية.
sudo rsync -a /source/ /destination/
رسالة “rsync: connection unexpectedly closed” (عند الاتصال البعيد)
المشكلة: انقطاع الاتصال أثناء مزامنة مع خادم بعيد. السبب: إعدادات SSH أو مسار غير صحيح أو صلاحيات الخادم. الحل:
تحقق من إمكانية الاتصال بـ SSH فقط: ssh user@host.
راجع صحة المسار الوجهة.
تحقق من إعدادات الجدار الناري (Firewall) والمنفذ.
رسالة “Argument list too long”
المشكلة: حدوث خطأ عند محاولة مزامنة مجلد يحوي عددًا كبيرًا جدًا من الملفات. السبب: تجاوز الحد الأقصى لطول قائمة المعاملات في الطرفية. الحل:
قلل عدد الملفات باستخدام --exclude أو --include.
جزّئ العملية على دفعات.
8. الأسئلة الشائعة (FAQ)
في هذا القسم نستعرض أبرز الأسئلة التي يطرحها مستخدمو Ubuntu حول rsync مع أجوبة مبسطة وواضحة:
س1. كيف أحافظ على ملكية وصلاحيات الملفات عند استخدام rsync؟
ج1. استخدم خيار -a (وضع الأرشفة) للحفاظ على كافة خصائص الملفات مثل الملكية والصلاحيات والطوابع الزمنية:
س4. هل يمكن معرفة ما الذي سيتم تنفيذه قبل بدء العملية؟
ج4. نعم، استخدم --dry-run أو -n لمحاكاة العملية دون تنفيذ فعلي:
rsync -av --dry-run /source/ /destination/
ينصح بذلك خاصةً عند استخدام خيار --delete.
س5. هل يتم نقل الملفات المخفية (dot files)؟
ج5. نعم، بشكل افتراضي يقوم rsync بنقل جميع الملفات بما فيها الملفات المخفية التي تبدأ بـ ..
إذا رغبت باستثناء بعض الملفات المخفية، أضف --exclude '.*' في الأمر.
س6. ما الفرق بين rsync و scp؟
ج6.scp مخصص لنقل الملفات بشكل كامل في كل مرة، بينما rsync ينقل الفروقات فقط، ما يجعله مناسبًا أكثر للنسخ الاحتياطي والمزامنة ويتيح استكمال النقل عند الانقطاع.
9. الخلاصة
استعرضنا في هذا المقال طريقة تثبيت واستخدام rsync على Ubuntu، وأساسيات المزامنة، وكيفية التعامل مع الخوادم البعيدة، والخيارات المتقدمة، وأداة Grsync الرسومية، مع حلول المشاكل الشائعة والأسئلة المتكررة.
لماذا rsync أداة لا غنى عنها لمستخدمي Linux؟
نقل سريع يعتمد على الفروقات لتقليل استهلاك الموارد.
الحفاظ على صلاحيات وملكية الملفات في عمليات النسخ والنسخ الاحتياطي.
مزامنة مع الخوادم البعيدة بأمان عبر SSH.
خيارات كثيرة ومرنة للتحكم في النقل والاستثناءات والسرعة.
إمكانية الأتمتة مع cron لنسخ احتياطي دوري بدون تدخل يدوي.
واجهة رسومية عبر Grsync تناسب الجميع.
rsync: الأداة الأساسية لكل مستخدم Linux
يُعد rsync أداة أساسية لكل من يدير أنظمة Linux، حيث يتيح عمليات نقل ونسخ احتياطي ومزامنة آمنة وفعالة. من خلال إتقان الأوامر الأساسية واستكشاف الخيارات المتقدمة، يمكنك الاستفادة الكاملة من هذه الأداة لتناسب احتياجاتك الخاصة وتبسيط عمليات إدارة الملفات لديك.