- 1 1. المقدمة
- 2 2. كيفية تثبيت rsync على Ubuntu
- 3 3. الاستخدام الأساسي لـ rsync
- 4 4. مزامنة rsync مع الخوادم البعيدة
- 5 5. خيارات rsync المتقدمة وأمثلة عملية
- 6 6. مقدمة إلى أداة Grsync الرسومية
- 7 7. المشاكل الشائعة وحلولها
- 8 8. الأسئلة الشائعة (FAQ)
- 8.5.1 س1. كيف أحافظ على ملكية وصلاحيات الملفات عند استخدام rsync؟
- 8.5.2 س2. كيف أستثني ملفات أو مجلدات معينة من المزامنة؟
- 8.5.3 س3. كيف أحدد سرعة النقل عبر الشبكة عند استخدام rsync؟
- 8.5.4 س4. هل يمكن معرفة ما الذي سيتم تنفيذه قبل بدء العملية؟
- 8.5.5 س5. هل يتم نقل الملفات المخفية (dot files)؟
- 8.5.6 س6. ما الفرق بين rsync و scp؟
- 9 9. الخلاصة
1. المقدمة
ما هو rsync؟
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
:
rsync -av --dry-run /home/user/documents/ /mnt/backup/
يساعد هذا في تجنب الأخطاء قبل بدء النسخ الفعلي.
تعامل rsync مع الملفات المخفية
يقوم rsync تلقائيًا بضم الملفات المخفية (تبدأ بـ .
) ضمن عملية النقل، مما يتيح مزامنة جميع الإعدادات وملفات النظام بسهولة.
4. مزامنة rsync مع الخوادم البعيدة
مزامنة rsync مع خادم بعيد عبر SSH
من أقوى مزايا rsync إمكانية مزامنة الملفات مع خادم بعيد باستخدام SSH بأمان تام عبر الشبكة.
البنية الأساسية:
rsync -avz المصدر user@IP-أو-اسم-الخادم:المسار-الوجهة
مثال: لمزامنة /home/user/documents/
مع /var/www/backup/
على خادم بعيد:
rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
- الخيار
-z
: ضغط البيانات أثناء الإرسال (مفيد عند ضعف سرعة الإنترنت). user@host
: حدد اسم المستخدم واسم الخادم أو IP.
الإعداد الأولي وتفعيل المصادقة بالمفتاح
عند الاتصال لأول مرة بخادم بعيد، قد يظهر لك تحذير التحقق من الهوية. أدخل “yes” للمتابعة.
للعمليات المتكررة، يفضل تفعيل المصادقة بمفتاح SSH لتجنب إدخال كلمة المرور في كل مرة:
- إنشاء مفتاح SSH محليًا (إذا لم يوجد):
ssh-keygen -t rsa
- نسخ المفتاح للخادم البعيد:
ssh-copy-id user@example.com
بعد ذلك، يمكنك استخدام rsync بدون إدخال كلمة المرور.
تحديد رقم المنفذ عند الحاجة
إذا كان الخادم البعيد يستخدم منفذ SSH مختلف عن 22، حدد المنفذ عبر الخيار -e
:
rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/
تحذير حول المزامنة ثنائية الاتجاه
rsync يدعم المزامنة أحادية الاتجاه فقط (من المصدر إلى الوجهة). إذا كنت بحاجة لمزامنة ثنائية الاتجاه، فكر في استخدام أداة أخرى مثل unison
.
5. خيارات rsync المتقدمة وأمثلة عملية
خيارات مفيدة تتجاوز الأساسيات
يوفر rsync العديد من الخيارات المتقدمة التي ترفع كفاءته بشكل كبير في العمل اليومي. فيما يلي بعض أبرز هذه الخيارات:
–delete: حذف الملفات غير الموجودة في المصدر
يتيح هذا الخيار حذف أي ملف من الوجهة غير موجود في المصدر. مفيد جدًا للنسخ المتطابق الكامل (mirroring).
rsync -av --delete /home/user/source/ /mnt/backup/
*تنبيه: من الأفضل استخدام --dry-run
أولًا لتجنب حذف ملفات مهمة بالخطأ.*
–exclude: استبعاد ملفات أو مجلدات معينة
لاستبعاد ملفات أو مجلدات معينة من المزامنة:
rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/
يمكن الجمع بين عدة أنماط لاستثناءات مرنة.
–bwlimit: تحديد الحد الأقصى لسرعة النقل
لتقييد سرعة النقل وحماية سرعة الإنترنت عند تشغيل rsync في الخلفية:
rsync -av --bwlimit=5000 /data/ user@remote:/data/
(هذا المثال يحدد أقصى سرعة بـ 5MB/s)
أمثلة عملية للاستخدام
rsync كأداة للنسخ الاحتياطي
يمكن استخدام rsync لأخذ نسخ احتياطية دورية بسهولة. مثال لنسخ كامل إلى قرص USB خارجي:
rsync -a --delete /home/user/ /media/usb/backup/
هنا --delete
يضمن التطابق التام بين المصدر والوجهة.
التشغيل التلقائي مع cron
يمكن دمج rsync مع cron
لأتمتة عمليات المزامنة، مثل أخذ نسخة احتياطية كل يوم في الثانية صباحًا:
0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1
بهذا تحصل على نسخ احتياطية تلقائية دون تدخل يدوي.
rsync يجمع بين المرونة والكفاءة
تكمن قوة 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
(وضع الأرشفة) للحفاظ على كافة خصائص الملفات مثل الملكية والصلاحيات والطوابع الزمنية:
rsync -a /etc/ /backup/etc/
س2. كيف أستثني ملفات أو مجلدات معينة من المزامنة؟
ج2. استخدم خيار --exclude
مع نمط الملف أو المجلد:
rsync -av --exclude '*.log' /project/ /backup/project/
يمكن أيضًا استثناء مجلدات مثل node_modules
أو .git
بسهولة.
س3. كيف أحدد سرعة النقل عبر الشبكة عند استخدام rsync؟
ج3. استخدم --bwlimit
لتقييد السرعة (بالـ KB/s):
rsync -av --bwlimit=5000 /data/ user@remote:/data/
(يتم في هذا المثال تحديد السرعة القصوى إلى 5MB/s)
س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، حيث يتيح عمليات نقل ونسخ احتياطي ومزامنة آمنة وفعالة. من خلال إتقان الأوامر الأساسية واستكشاف الخيارات المتقدمة، يمكنك الاستفادة الكاملة من هذه الأداة لتناسب احتياجاتك الخاصة وتبسيط عمليات إدارة الملفات لديك.