دليل rsync الشامل في لينكس: مزامنة ونسخ الملفات عملياً

مدخل إلى أداة rsync وأهميتها في إدارة البيانات

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

تجهيز بيئة العمل وبدء المزامنة المحلية عبر الخيار (-av)

نبدأ أولاً بتحديث فهارس المستودعات وتثبيت حزمة rsync على النظام للتأكد من جاهزية البيئة:

تحديث المستودعات وتثبيت حزمة rsync

لتهيئة بيئة تجريبية لعزل عمليات الاختبار، ننشئ دليلاً للمصدر وآخر للوجهة عبر تنفيذ الأمر mkdir -p /tmp/rsync_test/src /tmp/rsync_test/dest:

إنشاء مجلدات الاختبار للمصدر والهدف

نقوم بإنشاء ملف تجريبي أول لتغذية مجلد المصدر بالبيانات عبر الأمر echo 'data 1' > /tmp/rsync_test/src/file1.txt:

إنشاء أول ملف بيانات اختباري

نضيف ملفاً ثانياً إلى الدليل ذاته لإجراء اختبارات التزامن المتعدد عبر كتابة echo 'data 2' > /tmp/rsync_test/src/file2.txt:

توليد الملف الثاني في مسار المصدر

تكمن كفاءة أمر rsync في قدرته على نقل الملفات والمجلدات بين المسارات المحلية أو عبر الخوادم البعيدة بدقة متناهية. تضمن إضافة الشرطة المائلة (/) في ختام مسار المصدر نسخ المحتويات الفعلية وتفريغها مباشرة داخل مجلد الوجهة مع الاحتفاظ التام بسمات الملفات الأصلية.
⚙️ [أهم المعاملات والخيارات التشغيلية]

-a : تفعيل وضع الأرشفة الشامل (Archive Mode)، والذي يتيح النقل التكراري للشجرة مع صون البيانات الوصفية كأذونات الملفات، والملاك، وتواريخ التعديل، والروابط الرمزية.
-v : استعراض التفاصيل (Verbose Mode) لعرض أسماء الملفات الجاري نقلها وملخص تفصيلي للعملية على الشاشة.
-z : ضغط تدفق البيانات لحظياً لتوفير استهلاك نطاق الشبكة وتقليل زمن الإرسال.
-u : وضع التحديث، حيث يتجاوز نقل أي ملف موجود في الوجهة إذا كان تاريخ تعديله أحدث من ملف المصدر.
--delete : فرض المطابقة التامة بحذف أي ملف في مجلد الوجهة لم يعد له وجود في مجلد المصدر.
-P : جمع عملي بين إظهار شريط التقدم الفعلي (--progress) وإمكانية استئناف عمليات النقل غير المكتملة (--partial).
-n : وضع المحاكاة الصامتة (Dry-run)، لتجربة تنفيذ الأمر واستعراض نتائجه المتوقعة دون تطبيق أي تعديل حقيقي على القرص.

تشغيل مزامنة المجلدات عبر rsync بخياري a و v

للتحقق من وصول العناصر إلى وجهتها مع بقاء الصلاحيات والبيانات الوصفية سليمة ومطابقة للمصدر، نستعرض المجلد عبر ls -l /tmp/rsync_test/dest:

استعراض محتويات الوجهة للتأكد من سلامة الصلاحيات

دلالة الشرطة المائلة (/) واحتراف المزامنة التزايدية

لاختبار سلوك النقل التزايدي، نُجري تعديلاً طفيفاً على أحد الملفات القائمة بإلحاق بيانات إضافية إليه عبر echo 'data 1 updated' >> /tmp/rsync_test/src/file1.txt:

تعديل الملف الأول لاختبار اكتشاف التغييرات

ننشئ كذلك عنصراً جديداً في مجلد المصدر للتحقق من رصد الملفات المضافة حديثاً عبر أمر touch /tmp/rsync_test/src/file3.txt:

إضافة ملف جديد للمصدر

نعيد تشغيل أمر المزامنة rsync -av /tmp/rsync_test/src/ /tmp/rsync_test/dest/ لتحديث الوجهة بتغييرات المصدر.
يضمن وضع الشرطة المائلة (/) في نهاية المسار نقل محتويات المجلد لا المجلد نفسه ككيان مستقل، حيث تتفادى الأداة بذكاء إعادة إرسال file2.txt لعدم تغيره، وتقتصر العملية حصراً على نقل الفروقات الجديدة المتمثلة في تعديلات file1.txt والملف المستحدث file3.txt.

تنفيذ النقل التزايدي الذكي للملفات المتغيرة فقط

تحقيق التطابق الكامل عبر –delete والاختبار الآمن بـ –dry-run

لدراسة آليات الحذف المتزامن عند غياب الملفات من الأصل، نزيل ملفاً تجريبياً من المصدر بتنفيذ rm /tmp/rsync_test/src/file2.txt:

حذف ملف تجريبي من المصدر

يُفضل دوماً استباق العمليات الحساسة بمحاكاة آمنة دون تعديل فعلي للملفات عبر الأمر rsync -av --delete --dry-run /tmp/rsync_test/src/ /tmp/rsync_test/dest/.
يُظهر الخيار --dry-run بياناً واضحاً باعتزام الأداة إزالة الملف المحذوف من الوجهة (deleting file2.txt)، مما يمنحك فرصة لمراجعة المخرجات وتجنب أي فقدان غير مقصود للبيانات.

محاكاة المزامنة واستعراض خطة الحذف التجريبية

بعد الاطمئنان إلى مخرجات المحاكاة، ننفذ المزامنة الفعلية وتطبيق الحذف عبر rsync -av --delete /tmp/rsync_test/src/ /tmp/rsync_test/dest/.
يُزيل الخيار --delete في هذه المرحلة ملف file2.txt من مجلد الوجهة لتحقيق التماثل المطلق بين الطرفين.

تطبيق الحذف والمزامنة الفعلية على مجلد الوجهة

نتأكد من اكتمال تنظيف الوجهة واقتصارها على الملفات المحدثة الحالية من خلال استعراض المسار عبر ls -l /tmp/rsync_test/dest:

فحص مجلد الوجهة بعد انتهاء الحذف والمطابقة

تسريع نقل الملفات الضخمة بالضغط وتتبع التقدم (-avzP)

لمحاكاة التعامل مع الكتل البيانية الضخمة، نولّد ملف بيانات عشوائي بحجم 10 ميغابايت مستعينين بالأمر dd if=/dev/urandom of=/tmp/rsync_test/src/sample_large.dat bs=1M count=10:

توليد ملف كبير عشوائي لأغراض الفحص والاختبار

نشرع في إرسال الملف بتفعيل تقنيات تقليص الحجم والمتابعة اللحظية عبر rsync -avzP /tmp/rsync_test/src/ /tmp/rsync_test/dest/.
يُسهم الخيار -z في تقليل استهلاك قنوات الاتصال بفضل الضغط الحي أثناء الإرسال، بينما يتيح المعامل -P مراقبة نسبة الإنجاز اللحظية (100%)، وسرعة النقل الحالية، بالإضافة إلى إمكانية استكمال النقل من نقطة التوقف في حال انقطاع الاتصال.

نقل الملفات الضخمة بالضغط ومتابعة شريط الإنجاز

استعرضنا في هذا الدليل العملي الركائز الأساسية لأمر rsync في إدارة النسخ الاحتياطي ومزامنة البيئات في لينكس. يُمكنك عبر انتقاء المعاملات الملائمة لكل سيناريو عمل بناء حلول نقل قوية ومرنة تضمن سلامة بياناتك وسرعة تدفقها.