rsync

rsync (المزامنة عن بعد) هي أداة لنقل ومزامنة الملفات بين جهاز كمبيوتر ووحدة تخزين، وعبر أجهزة الكمبيوتر المتصلة بالشبكة ، وذلك عن طريق مقارنة أوقات تعديل الملفات وأحجامها. [ 7 ]

خوارزمية rsync هي نوع من أنواع ترميز دلتا ، وتُستخدم لتقليل استخدام الشبكة. يمكن استخدام Zlib لضغط البيانات بشكل إضافي . [ 7 ]

أحد تطبيقات rsync هو مزامنة مستودعات البرامج على مواقع النسخ المتطابقة التي تستخدمها أنظمة إدارة الحزم . [ 8 ]

تعرض مطورو rsync لانتقادات بسبب استخدامهم لأدوات البرمجة المدعومة بالذكاء الاصطناعي في دورة التطوير ، مما أدى إلى ظهور أخطاء وانخفاض في وظائف البرنامج.

تاريخ

كتب أندرو تريدجيل وبول ماكيراس برنامج rsync الأصلي، الذي أُعلن عنه لأول مرة في 19 يونيو 1996. [ 1 ] وهو مشابه في وظيفته وطريقة استدعائه لبرنامج rdist ( rdist -c)، الذي أنشأه رالف كامبل عام 1983 وأُصدر كجزء من نظام 4.3BSD . [ 9 ] يناقش تريدجيل تصميم rsync وتنفيذه وأداءه في الفصول من 3 إلى 5 من أطروحته للدكتوراه عام 1999. [ 10 ] أصبح واين دافيسون المسؤول الرئيسي عن صيانته عام 2002. وفي أبريل 2004، أعلن دافيسون أن أندرو تريدجيل قد عاد إلى التطوير والصيانة النشطين لبرنامج rsync بعد أن طلب دافيسون المساعدة بسبب ضيق وقته. ومنذ ذلك الحين، تتم صيانة rsync تحت مظلة مؤسسة RsyncProject، مع تولي تريدجيل منصب المسؤول عن صيانة المشروع. [ 11 ]

تم نقله إلى نظام التشغيل Windows (عبر Cygwin أو Grsync أو SFU [ 12 ] )، و FreeBSD ، [ 13 ] و NetBSD ، [ 14 ] و OpenBSD ، [ 15 ] و macOS .

أمثلة

قد يبدو سطر الأوامر لمحاكاة نظام FreeBSD كما يلي: [ 16 ]

$ rsync -avz --delete ftp4.de.FreeBSD.org::FreeBSD/ /pub/FreeBSD/ 

يدعم خادم Apache HTTP برنامج rsync فقط لتحديث المرايا. [ 17 ]

$ rsync -avz --delete --safe-links rsync.apache.org::apache-dist /path/to/mirror 

الطريقة المفضلة (والأبسط) لنسخ موقع ويب PuTTY إلى الدليل الحالي هي استخدام rsync. [ 18 ]

$ rsync -auH rsync://rsync.chiark.greenend.org.uk/ftp/users/sgtatham/putty-website-mirror/ . 

طريقة لمحاكاة إمكانيات برنامج Time Machine (macOS) ؛ [ 19 ]

$ date = $( date "+%FT%H-%M-%S" ) # يفسر rsync ":" كفاصل بين المضيف والمنفذ (أي المضيف:المنفذ)، لذلك لا يمكننا استخدام %T أو %H:%M:%S هنا، لذلك نستخدم %H-%M-%S $ rsync -aP --link-dest = $HOME /Backups/current /path/to/important_files $HOME /Backups/back- $date $ ln -nfs $HOME /Backups/back- $date $HOME /Backups/current 

قم بعمل نسخة احتياطية كاملة من دليل جذر النظام: [ 20 ]

$ rsync -avAXHS --progress --exclude ={ "/dev/*" , "/proc/*" , "/sys/*" , "/tmp/*" , "/run/*" , "/mnt/*" , "/media/*" , "/lost+found" } / /path/to/backup/folder 

حذف جميع الملفات والمجلدات داخل مجلد واحد بسرعة فائقة:

$ rsync -a --delete /path/to/empty/dir /path/to/dir/to/empty # إنشاء دليل فارغ في مكان ما، وهو المسار الأول، والمسار الثاني هو الدليل الذي تريد إفراغه.

الخوارزمية

تحديد الملفات التي يجب إرسالها

بشكل افتراضي، يحدد برنامج rsync الملفات المختلفة بين النظامين المُرسِل والمُستقبِل من خلال فحص وقت التعديل وحجم كل ملف. إذا اختلف الوقت أو الحجم بين النظامين، فإنه ينقل الملف من النظام المُرسِل إلى النظام المُستقبِل. ولأن هذه العملية لا تتطلب سوى قراءة معلومات دليل الملفات، فهي سريعة، ولكنها قد تغفل التعديلات غير المعتادة التي لا تُغيّر أيًا من النظامين. [ 7 ]

تحديد أجزاء الملف التي تغيرت

يقوم المستلم بتقسيم نسخته من الملف إلى أجزاء ويحسب مجموعتين اختباريتين لكل جزء: تجزئة MD5 ، ومجموع اختباري متداول أضعف ولكنه أسهل في الحساب . [ 21 ] ويرسل هذه المجموعات الاختبارية إلى المرسل.

يحسب المرسل مجموع التحقق لكل قسم متجدد في نسخته من الملف، بحيث يكون حجمه مساويًا لحجم الأجزاء المستخدمة في نسخة المستلم. بينما يحسب المستلم مجموع التحقق فقط للأجزاء التي تبدأ بمضاعفات كاملة لحجم الجزء، يحسب المرسل مجموع التحقق لجميع الأقسام التي تبدأ من أي عنوان. إذا تطابق أي مجموع تحقق متجدد محسوب من قِبل المرسل مع مجموع تحقق محسوب من قِبل المستلم، فإن هذا القسم يُعتبر مرشحًا لعدم إرسال محتواه، وإنما موقعه فقط في ملف المستلم. في هذه الحالة، يستخدم المرسل دالة التجزئة MD5، وهي دالة أكثر تعقيدًا حسابيًا، للتحقق من تطابق قسم المرسل مع جزء المستلم. تجدر الإشارة إلى أن القسم في ملف المرسل قد لا يبدأ من نفس عنوان بداية الجزء في ملف المستلم. يتيح ذلك نقل الملفات بكفاءة حتى وإن اختلفت في عمليات الإضافة والحذف. [ 22 ]

نقد

عند تحديث rsync إلى الإصدار 3.4.3 في 20 مايو 2026، أبلغ العديد من المستخدمين عن عدم قدرتهم على إجراء نسخ احتياطية تزايدية للملفات. اكتشف هؤلاء المستخدمون أنه منذ إصدار rsync 3.4.1، تم تنفيذ عشرات عمليات الالتزام في Git بواسطة "tridge and claude"، حيث تم استخدام Claude من Anthropic في عملية البرمجة. دفع هذا أحد المستخدمين إلى نشر مشكلة على GitHub بعنوان " رجاءً لا تُفسدوا هذا البرنامج" ، والتي انتشرت إلى مواقع التواصل الاجتماعي الأخرى مثل Reddit ، مما أدى إلى نقاشات حول قبول التعليمات البرمجية المولدة بالذكاء الاصطناعي في البنية التحتية الحيوية مفتوحة المصدر. [ 23 ]

ردًا على ذلك، نشر تريدج مقالًا على مدونته بعنوان "rsync والغضب" ، ذكر فيه أنه استخدم الذكاء الاصطناعي لإضافة مجموعات اختبار و"تقنيات تحصين متعددة الطبقات" إلى الكود. [ 24 ] كما ذكر تريدج أن برنامج openrsync الخاص بنظام OpenBSD ، وهو تطبيق بديل لـ rsync كان بعض المستخدمين يخططون للتحول إليه، يفشل في مجموعة الاختبار المدعومة بالذكاء الاصطناعي؛ وقد انتقد محرر موقع OSNews، توم هولوردا، هذا التصريح ووصفه بأنه "طفولي وغير ضروري، وينم عن انعدام الأمان". [ 23 ] [ 25 ]

الاختلافات

التستخدم أداة rdiff خوارزمية rsync لإنشاءملفات دلتاتحتوي على الفرق بين الملف A والملف B (مثل أداةdiff، ولكن بتنسيق دلتا مختلف). يمكن بعد ذلك تطبيق ملف دلتا على الملف A، ليتحول إلى الملف B (على غرارpatch). تعمل أداة rdiff بكفاءة معالملفات الثنائية.

يحتفظ برنامج rdiff -backup بنسخة احتياطية من ملف أو مجلد، إما محليًا أو عن بُعد عبر الشبكة على خادم آخر. ويخزن rdiff-backup تغييرات rdiff التزايدية مع النسخة الاحتياطية، مما يتيح إعادة إنشاء أي نقطة نسخ احتياطي. [ 26 ]

مكتبة librsync المستخدمة في rdiff هي تطبيق مستقل لخوارزمية rsync. لا تستخدم بروتوكول شبكة rsync ولا تشترك في أي كود مع تطبيق rsync. [ 27 ] تُستخدم هذه المكتبة من قِبل Dropbox وrdiff-backup و duplicity وغيرها من الأدوات المساعدة. [ 27 ]

مكتبة acrosync هي تطبيق مستقل ومتعدد المنصات لبروتوكول الشبكة rsync. [ 28 ] على عكس librsync، فهي متوافقة مع rsync (إصدار البروتوكول 29 أو 30). وهي مُرخصة بموجب رخصة Reciprocal Public License ، ويستخدمها برنامج rsync التجاري Acrosync . [ 29 ]

يُتيح برنامج النسخ الاحتياطي Duplicity، المكتوب بلغة بايثون، إجراء نسخ احتياطية تزايدية باستخدام خدمات تخزين خلفية بسيطة مثل نظام الملفات المحلي، وبروتوكول نقل الملفات الآمن (SFTP) ، وخدمة Amazon S3 ، وغيرها. يستخدم البرنامج مكتبة librsync لإنشاء بيانات التغييرات بناءً على توقيعات الإصدارات السابقة من الملفات، وتشفيرها باستخدام GPG ، وتخزينها في النظام الخلفي. ولتحسين الأداء، يُستخدم دليل أرشيف محلي لتخزين توقيعات سلسلة النسخ الاحتياطية مؤقتًا، ولكن يمكن إعادة تنزيلها من النظام الخلفي عند الحاجة.

ابتداءً من نظام macOS 10.5 والإصدارات الأحدث، يوجد خيار خاص -Eيسمح --extended-attributesبالاحتفاظ بجزء كبير من بيانات تعريف ملفات HFS+ عند المزامنة بين جهازين يدعمان هذه الميزة. ويتحقق ذلك عن طريق إرسال فرع الموارد مع فرع البيانات. [ 30 ]

أداة openrsync هي نسخة مُعاد تنفيذها من أداة rsync الأصلية بموجب ترخيص BSD، وهي مُصممة خصيصًا لنظام OpenBSD ولكنها قابلة للنقل أيضًا إلى أنظمة Linux و macOS. [ 31 ] [ 32 ]

zsync أداةٌ شبيهةٌ بـ rsync، مُحسَّنةٌ لتنزيل العديد من الملفات لكل إصدار. تستخدم توزيعات لينكس، مثل أوبونتو [ 33 أداة zsync لتوزيع ملفات صور ISO التجريبية سريعة التغيير . تستخدم zsync بروتوكول HTTP وملفات .zsync مع تجزئة متغيرة مُحسوبة مسبقًا لتقليل حمل الخادم مع السماح بنقل الفروقات لتحسين الشبكة. [ 34 ]

Rclone أداة مفتوحة المصدر مستوحاة من rsync، وتركز على التخزين السحابي وغيره من حلول التخزين ذات زمن الاستجابة العالي. تدعم الأداة أكثر من 50 مزود خدمة مختلفًا، وتوفر واجهة مشابهة لواجهة rsync للتخزين السحابي. [ 35 ] مع ذلك، لا تدعم Rclone خاصية التحقق من المجموع الاختباري المتغير لمزامنة الملفات الجزئية (الاختلافات الثنائية) لأن مزودي خدمات التخزين السحابي لا يقدمون هذه الميزة عادةً، كما أن Rclone تتجنب تخزين بيانات وصفية إضافية. [ 36 ]

تطبيقات rsync

برنامجنظام التشغيلبرامج مجانيةوصف
لينكسنظام التشغيل macOSويندوز
العودة بالزمننعملالانعم
مساعد النسخ الاحتياطيلالانعملامرآة مباشرة أو مع سجل البيانات، VSS.
مزامنة cwRلالانعملامبني على Cygwin .
مزامنة البياناتنعمنعمنعم [ 37 ]نعمواجهة رسومية لبرنامج rsync.
لاكي باك أبنعمنعمنعمنعم
rcloneنعمنعمنعمنعممستوحى من rsync ويدعم أكثر من 50 مزودًا لخدمات التخزين السحابي وخدمات التخزين الأخرى ذات زمن الاستجابة العالي. لا يستخدم rsync فعليًا ولا يدعم التحقق من المجموع الاختباري المتغير أو مزامنة الملفات الجزئية.
تايمنعمنعمنعمنعمبرنامج Time rsYnc Machine – نسخ احتياطي على غرار Time Machine – سكربت Bash
انسجامنعمنعمنعمنعم
rsnapshotنعم؟لانعمبرنامج نسخ احتياطي تزايدي يستخدم rsync والروابط الصلبة للاحتفاظ بنسخ احتياطية كاملة محليًا أو عن بُعد عبر SSH. يتم توفير المساحة وعرض النطاق الترددي لأن التعديلات فقط هي التي تُنقل وتُخزن. يوفر هذا البرنامج حلاً وسطًا بين السرعة والحجم وسهولة الاستعادة والتكرار.

انظر أيضاً

ملحوظات

  1. GPL-3.0-or-later منذ 2007-07-10، الإصدار التجريبي 3.0.0pre1 في 2007-10-05، الإصدار المستقر 3.0.0 في 2008-03-01.
  2. GPL-3.0-only من 2007-07-07 حتى 2007-07-09.
  3. GPL-2.0-only من 2007-02-04 حتى 2007-07-07.
  4. GPL-2.0-or-later من 1996-06-16 حتى 2007-01-31، الإصدارات من 0.1 إلى 2.6.9.

مراجع

  1. 1 2 3 ترايجيل، أندرو (19 يونيو 1996). "الإصدار الأول من rsync - بديل rcp" . مجموعة الأخبار : comp.os.linux.announce . يوزنت: cola-liw-835153950-21793-0@liw.clinet.fi . مؤرشف من الأصل في 8 نوفمبر 2011. تم الاطلاع عليه في 19 يوليو 2007 .  
  2. "الإصدار 3.4.4" . 8 يونيو 2026. تم الاطلاع عليه في 8 يونيو 2026 .
  3. "الأخبار" .
  4. "تعديل نص الترخيص قليلاً" .
  5. "رخصة rsync" .
  6. "رخصة rsync" .
  7. 1 2 3 "rsync(1) – صفحة دليل لينكس" . linux.die.net . مؤرشف من الأصل في 1 يناير 2017. تم الاطلاع عليه في 2 فبراير 2017 .
  8. "استخدام وتشغيل المرايا" . مشروع جنو. مؤرشف من الأصل في 16 أبريل 2020. تم الاطلاع عليه في 15 أبريل 2020 .
  9. "rdist(1)" .
  10. ترايجيل، أندرو؛ خوارزميات فعالة للفرز والمزامنة ، فبراير 1999، تم الاطلاع عليه في 29 سبتمبر 2009
  11. "عودة Tridge إلى rsync" . LWN.net . 17 أبريل 2024. تم الاطلاع عليه بتاريخ 30 مايو 2026 .
  12. "مستودع الأدوات" . مجتمع SUA . مؤرشف من الأصل في 6 أبريل 2013.
  13. "منافذ FreeBSD" . تم الاطلاع عليه بتاريخ 24 أكتوبر 2016 .
  14. "منافذ NetBSD" . مؤرشف من الأصل بتاريخ 25 أكتوبر 2016. تم الاطلاع عليه بتاريخ 24 أكتوبر 2016 .
  15. "منافذ OpenBSD" . تم الاطلاع عليه بتاريخ 24 أكتوبر 2016 .
  16. "كيفية إنشاء نسخة احتياطية من نظام FreeBSD (باستخدام rsync)" . Freebsd.org . تم الاطلاع عليه بتاريخ 18 أغسطس 2014 .
  17. "كيف تصبح مرآة لمؤسسة برمجيات أباتشي" . Apache.org. مؤرشف من الأصل في 21 أغسطس 2014. تم الاطلاع عليه في 18 أغسطس 2014 .
  18. "مرايا مواقع الويب في برنامج PuTTY: إرشادات النسخ المتطابق" . Chiark.greenend.org.uk. 20 ديسمبر 2007. مؤرشف من الأصل في 19 أغسطس 2014. تم الاطلاع عليه في 18 أغسطس 2014 .
  19. "إعداد Rsync ليعمل مثل Time Machine" . Blog.interlinked.org. مؤرشف من الأصل بتاريخ 15 نوفمبر 2007. تم الاطلاع عليه بتاريخ 18 أغسطس 2014 .
  20. "نسخ احتياطي كامل للنظام باستخدام rsync" . wiki.archlinux.org. مؤرشف من الأصل بتاريخ 11 فبراير 2015. تم الاطلاع عليه بتاريخ 15 ديسمبر 2014 .
  21. "أخبار عن rsync 3.0.0" . 1 مارس 2008. مؤرشف من الأصل في 20 مارس 2008.
  22. نورمان رامزي. "خوارزمية Rsync" .
  23. الصفحة 1 2 ، كارلي (4 يونيو 2026). "«رجاءً لا تُفسدوا هذا البرنامج»: نسخ احتياطية معطوبة تُثير جدلاً حول برمجة الذكاء الاصطناعي في مشروع rsync . theregister . تاريخ الاطلاع: 9 يونيو 2026 .
  24. بروكماير، جو (3 يونيو 2026). "تريجيل: rsync والغضب" . LWN.net . تم الاطلاع عليه في 9 يونيو 2026 .
  25. هولوردا، ثوم (3 يونيو 2026). "يفتح Rsync الباب أمام المشاكل، وتلي ذلك تراجعات وأخطاء - OSnews" . www.osnews.com . مؤرشف من الأصل في 3 يونيو 2026. تم الاطلاع عليه في 9 يونيو 2026 .
  26. نسخة احتياطية من rdiff
  27. 1 2 بول، مارتن؛ "librsync" مؤرشف في 9 ديسمبر 2013 في Wayback Machine
  28. تشين، جيلبرت. "acrosync-library" . github.com. مؤرشف من الأصل في 10 فبراير 2017. تم الاطلاع عليه في 22 يونيو 2016 .
  29. "acrosync.com" . مؤرشف من الأصل بتاريخ 20 ديسمبر 2019. تم الاطلاع عليه بتاريخ 29 يوليو 2020 .
  30. "مكتبة مطوري ماك" . Developer.apple.com. مؤرشف من الأصل بتاريخ 26 سبتمبر 2012. تم الاطلاع عليه بتاريخ 18 أغسطس 2014 .
  31. "openrsync/README.md at 48070e68d73f67d6922b2ffc8c2dee9754e659c6 · kristapsdz/openrsync" . وهو حاليًا قابل للنقل عبر أنظمة Linux (glibc و musl)، و FreeBSD، و NetBSD، و Mac OS X، و OmniOS.{{cite web}}: CS1 maint: url-status ( link )
  32. "Openrsync: تطبيق لـ rsync، من فريق OpenBSD | Hacker News" . news.ycombinator.com . مؤرشف من الأصل في 31 مايو 2026. تم الاطلاع عليه في 2 يونيو 2026 .
  33. "Zsync Cd Image" . ubuntu.com . تم الاطلاع عليه بتاريخ 6 يناير 2015 .
  34. موقع zsync الإلكتروني
  35. كريج وود، نيك. "نظرة عامة على أنظمة التخزين السحابي" . rclone.org . مؤرشف من الأصل في 4 أكتوبر 2017. تم الاطلاع عليه في 10 يوليو 2017 .
  36. كريج وود، نيك. "الأسئلة الشائعة حول Rclone" . rclone.org . مؤرشف من الأصل في 10 مايو 2022. تم الاطلاع عليه في 13 مايو 2022 .
  37. "Grsync لنظام ويندوز" . سورس فورج . ١٢ يوليو ٢٠١٦. مؤرشف من الأصل في ٢٤ مارس ٢٠١٩. تم الاطلاع عليه في ٢٤ مارس ٢٠١٩ .