مدخل إلى أداة rsync وأهميتها في إدارة البيانات
تُمثل أداة rsync معياراً صناعياً أساسياً في بيئات لينكس للتعامل مع نقل البيانات والنسخ الاحتياطي بأعلى درجات الفعالية والسرعة. سنتناول عبر هذه الجلسة التطبيقية على الطرفية أسلوب عمل هذه الأداة انطلاقاً من الاستخدام الأساسي، وتأثير وضع الشرطة المائلة (/) في تحديد مسار المصدر، وصولاً إلى الخيارات المتقدمة للمزامنة التزايدية وتطهير البيانات المتطابقة بأمان تام.
تجهيز بيئة العمل وبدء المزامنة المحلية عبر الخيار (-av)
نبدأ أولاً بتحديث فهارس المستودعات وتثبيت حزمة 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)، لتجربة تنفيذ الأمر واستعراض نتائجه المتوقعة دون تطبيق أي تعديل حقيقي على القرص.

للتحقق من وصول العناصر إلى وجهتها مع بقاء الصلاحيات والبيانات الوصفية سليمة ومطابقة للمصدر، نستعرض المجلد عبر 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 في إدارة النسخ الاحتياطي ومزامنة البيئات في لينكس. يُمكنك عبر انتقاء المعاملات الملائمة لكل سيناريو عمل بناء حلول نقل قوية ومرنة تضمن سلامة بياناتك وسرعة تدفقها.