10 أمثلة مفيدة لأمر rsync في Linux

لينكس rsync يعد الأمر أداة قوية لنسخ الملفات ومزامنة المجلدات. فيما يلي عشر حالات استخدام شائعة يمكنك استخدامها بشكل جيد على أنظمتك الخاصة.




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

rync 

إنه ذكي للغاية حيث يمكنه معرفة أجزاء الملفات الموجودة التي تم تعديلها، ويرسل فقط الأجزاء التي تم تغييرها.

يمكنك استخدام rsync نسخ الملفات إلى موقع مختلف على القرص الصلب الخاص بك، أو إلى قرص صلب مختلف في نفس الكمبيوتر، أو إلى محرك أقراص USB متصل خارجيًا، أو أي موقع آخر يمكن الوصول إليه عبر الشبكة.

ذات صلة: كيفية عمل نسخة احتياطية لنظام Linux الخاص بك باستخدام rsync

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


بالنسبة لجميع خياراتها العديدة، فإن هيكل rsync الأمر بسيط. نحتاج إلى توفير المصدر والوجهة والخيارات التي نريد استخدامها. ربما تجد أن rsync تم تثبيته بالفعل على جهاز الكمبيوتر الذي يعمل بنظام Linux الخاص بك – كان كذلك، على جميع أجهزة الاختبار الخاصة بنا – ولكن إذا لم يكن كذلك، فسيكون بالتأكيد في مستودعات التوزيع الخاص بك.

1. نسخ الملفات إلى دليل مختلف

فيما يلي مثال بسيط لبدء العمل. سنقوم بنسخ الملفات من دليل “project-files” إلى دليل “Documents”. نستخدم خيارين، الأول هو -a خيار (الأرشيف) و -v خيار (verbose). يخبرك خيار verbose rsync لشرح ما يفعله أثناء قيامه به.

archive 

يحافظ الخيار على ملكية الملف وبعض العناصر الأخرى التي سننظر إليها قريبًا.

تنسيق الأمر هو

options source-location destination-location 

.

rsync -av /home/dave/project-files/ /home/dave/Documents/


نسخ الملفات إلى دليل مختلف على نفس الكمبيوتر باستخدام rsync

استخدام ls يظهر في مجلد “المستندات” أن الملفات تم نسخها.

إدراج الملفات في دليل المستندات

بينما rsync يعمل، يتم سرد الملفات أثناء نسخها. يُقال لنا:

  • عدد البايتات المرسلة.
  • عدد البايتات المستلمة. قبل نقل الملف، rsync يجب تحديد الملفات التي تحتاج إلى نقل. للقيام بذلك، يجب استرداد بعض المعلومات حول الملفات الموجودة على الوجهة بواسطة rsync . توجد هذه المعلومات في البايتات المستلمة.
  • سرعة النقل.
  • الحجم الإجمالي للملفات المنسوخة.
  • “التسريع”. هذه هي نسبة الحجم الإجمالي مقسومًا على مجموع البايتات المرسلة والمستلمة. وكلما زاد هذا الرقم، زادت كفاءة النقل.


لقد قمنا بتعديل ملف النص في دليل المصدر وكررنا ذلك rsync يأمر.

rsync -av /home/dave/project-files/ /home/dave/Documents/

نسخ الملفات إلى دليل مختلف على نفس الكمبيوتر باستخدام rsync

هذه المرة، الملف الوحيد الذي يحتاج إلى التحديث هو ملف النص الذي قمنا بتعديله. يبلغ رقم ​​التسريع الآن 30850. وهذا يوضح مدى كفاءة نسخ الجزء المعدل من هذا الملف الواحد، بدلاً من نسخ جميع الملفات.

ال -a يمثل خيار (الأرشيف) في الواقع مجموعة من الخيارات الأخرى. وهو نفس استخدام كل هذه الخيارات:


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

هذه تركيبة مستخدمة بشكل متكرر rsync يوفر -a (الأرشيف) الخيار كطريقة مختصرة لاستدعاءهم جميعًا.

2. نسخ دليل إلى دليل مختلف

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

rsync -av /home/dave/project-files /home/dave/Documents/


نسخ الدليل ومحتوياته إلى دليل مختلف على نفس الكمبيوتر باستخدام rsync

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

ls Documents/

ls Documents/project-files/

إدراج الملفات المنسوخة في الدليل المنقول

3. نسخ دليل إلى محرك أقراص مختلف

إن نسخ الملفات إلى موقع آخر على نفس القرص الصلب لا يوفر لك الحماية ضد فشل القرص. فإذا تعطل القرص الصلب، فستفقد نسخ المصدر والوجهة لتلك الملفات. إن نسخها إلى قرص صلب آخر يعد طريقة أكثر قوة لحماية بياناتك. كل ما نحتاج إلى القيام به هو توفير المسار الصحيح لمحرك الوجهة.


rsync -av /home/dave/project-files /run/mount/drive2

نسخ الملفات إلى قرص ثابت مختلف في نفس الكمبيوتر

عند النظر إلى القرص الصلب الآخر، يظهر لنا الدليل والملفات التي تم نسخها إليه.

ls run/mount/drive2/project-files/

إدراج الملفات التي تم نسخها إلى قرص ثابت آخر في نفس الكمبيوتر

ذات صلة: ما يجب فعله عند فشل القرص الصلب لديك

4. إجراء تشغيل تجريبي أولاً

قبل أن ننظر في كيفية rsync يمكن أن يكون من المفيد حذف الملفات بالنسبة لنا، دعنا نلقي نظرة على كيفية القيام بذلك rsync قم بإجراء تشغيل تجريبي.


في تشغيل جاف، rsync يقوم بتنفيذ الإجراءات التي طلبناها، لكنه لا يقوم بها فعليًا. فهو يقدم تقريرًا عما كان ليحدث لو تم تنفيذ الأمر. وبهذه الطريقة، يمكننا التأكد من أن الأمر يقوم بالضبط بما نتوقعه.

لإجبار التشغيل التجريبي نستخدم --dry-run خيار.

rsync -av --dry-run /home/dave/geocoder /run/mount/drive2

إجراء تشغيل تجريبي لأمر rsync

يتم سرد الملفات التي كان من المفترض أن يتم نسخها لنا، ونحصل على الإحصائيات المعتادة، متبوعة بالرسالة (DRY RUN) حتى نعلم أنه لم يحدث شيء فعليا.

5. حذف الملفات الموجودة في دليل الوجهة

ال --delete الخيار يقول rsync لحذف الملفات والدلائل الموجودة في الدليل الوجهة والتي ليست موجودة في الدليل المصدر. وهذا يعني أن الدليل الوجهة سيكون نسخة طبق الأصل من الدليل المصدر. سنكون حذرين ونستخدم --dry-run الخيار الأول.


rsync -av --delete --dry-run /home/dave/geocoder /run/mount/drive2

إجراء تشغيل تجريبي لأمر rsync الذي يمكنه حذف الملفات

لقد تم إبلاغنا بأنه سيتم حذف ملفين. إذا كنا متأكدين من أننا لا نهتم بحذفهما، فيمكننا إزالة --dry-run الخيار وتنفيذ الأمر حقيقيا.

rsync -av --delete /home/dave/geocoder /run/mount/drive2

نسخ الملفات وإزالة الملفات من دليل الوجهة التي ليست موجودة في دليل المصدر

هذه المرة يتم مزامنة محتويات الدلائل ويتم حذف الملفين الإضافيين.


6. حذف ملفات المصدر

يمكنك اختيار حذف ملفات المصدر بعد النقل الناجح، مما يجعل rsync تعمل مثل النقل أكثر من النسخ. إذا لم يكن النقل ناجحًا، فلن يتم حذف ملفات المصدر. الخيار الذي نحتاج إلى استخدامه هو --remove-source-files .

rsync -av --remove-source-files /home/dave/geocoder /run/mount/drive2

إجبار rsync على حذف ملفات المصدر بعد النقل الناجح

لاحظ أنه يمكن حذف الملفات حتى لو لم يتم نقل أي ملفات. وذلك لأنه إذا rsync يتم التحقق من أن جميع الملفات موجودة بالفعل في دليل الوجهة ولا يوجد شيء آخر rsync أن تفعل rsync ويعتبر أن النقل ناجح.

أيضًا، rsync يحذف فقط الملفات من دليل المصدر. ولا يحذف دليل المصدر ولا أي أدلة فرعية، بل يحذف الملفات الموجودة فيها فقط. يمكننا أن نرى ذلك باستخدام -R خيار (متكرر) مع ls، في دليل المصدر.


ls -R geocoder

شجرة دليل فارغة بعد حذف rsync للملفات المصدرية

7. نسخ الملفات إلى جهاز كمبيوتر بعيد

لمزامنة المجلدات مع جهاز كمبيوتر بعيد، rsync يجب تثبيته على كلا الكمبيوترين. قم بإعداد اتصال SSH بين الكمبيوترين قبل محاولة استخدامه rsync إلى الكمبيوتر البعيد.

ذات صلة: كيفية إنشاء مفاتيح SSH وتثبيتها من Linux Shell

يجب أن تكون قادرًا على تسجيل الدخول عن بُعد كمستخدم عادي على الكمبيوتر البعيد rsync لا يهم ما إذا كنت تستخدم معرفًا وكلمة مرور لتسجيل الدخول، أو إذا كنت قد قمت بإعداد مفاتيح SSH للوصول الآمن بدون كلمة مرور، ولكن إذا لم تتمكن من تسجيل الدخول كمستخدم، rsync لن يعمل أيضًا

إذا قمت بتسجيل الدخول باستخدام كلمة مرور، rsync سيطلب منك إدخال كلمة المرور. إذا كنت تستخدم مفاتيح SSH لتسجيل الدخول، فستكون العملية سلسة.


الشيء الإضافي الوحيد الذي عليك القيام به هو إضافة اسم حساب المستخدم وعنوان IP للكمبيوتر البعيد إلى بداية مسار الملف الوجهة. استخدم علامة “@“لفصل اسم المستخدم عن اسم الكمبيوتر أو عنوان IP، وعلامة النقطتين”:“لفصل اسم الكمبيوتر أو عنوان IP عن مسار الدليل.

على شبكة الاختبار الخاصة بنا، هذين الأمرين متكافئين.

rsync -av /home/dave/geocoder dave@nostromo.local:/home/dave/Downloads

rsync -av /home/dave/geocoder dave@192.168.86.60:/home/dave/Downloads

نسخ الملفات إلى جهاز كمبيوتر بعيد عبر SSH باستخدام rsync

نحصل على نفس المعلومات المبلغ عنها لنا كما نفعل عندما نقوم بنسخ الملفات محليًا.


8. تضمين أو استبعاد الملفات أو الدلائل

قد يكون لديك ملفات وأدلة في الدليل المصدر لا تريد نسخها إلى الكمبيوتر الوجهة. يمكنك استبعادها باستخدام --exclude الخيار. وبطريقة مماثلة، يمكنك اختيار تضمين ملفات وأدلة محددة مع --include خيار.

الغريب هو أنه إذا كنت تستخدم --include الخيار بمفرده، يتم نسخ جميع الملفات، كما هو الحال عادةً — بما في ذلك الملفات المضمنة على وجه التحديد. لنسخ الملفات المضمنة فقط، يجب عليك --exclude كل شئ آخر.

يمكنك استخدام العديد من --include و --exclude يمكنك وضع الخيارات في الأمر الخاص بك كما تريد، ولكن تأكد من وضع --include الخيارات قبل --exclude تأكد أيضًا من وجود شرطة مائلة للأمام في مسار ملف المصدر.

يقوم هذا الأمر بنسخ ملفات الكود المصدر C وملفات البيانات CSV فقط إلى الكمبيوتر الوجهة.

rsync -av --include="*.c" --include="*.csv" --exclude="*" /home/dave/geocoder/ /run/mount/drive2/geocoder 
استخدام rsync لنسخ الملفات المحددة إلى محرك أقراص ثابت مختلف على نفس الكمبيوتر


الملفات الوحيدة التي تم نسخها هي الملفات التي قمنا بتضمينها خصيصًا.

9. ضغط الملفات أثناء النقل

ال -z يؤدي خيار (الضغط) إلى rsync لضغط الملفات المنقولة. ومع ذلك، لا يتم تخزينها كملفات مضغوطة على الكمبيوتر الوجهة، بل يتم ضغطها فقط أثناء النقل نفسه. يمكن أن يؤدي هذا إلى تسريع عمليات النقل الطويلة.

rsync -avz /home/dave/geocoder /run/mount/drive2

ضغط الملفات أثناء نقلها باستخدام خيار -z rsync

10. مراقبة التقدم

عند الحديث عن الانتقالات الطويلة، يمكننا إضافة بعض الإحصائيات حتى نتمكن من رؤية تقدم عملية الانتقال.

ال -P يضيف الخيار (جزئيًا، تقدميًا) في الواقع خيارين، --partial و --progress . ال --partial الخيار يقول rsync للاحتفاظ بالملفات المنقولة جزئيًا في حالة فشل النقل. وهذا يوفر الوقت عند إعادة تشغيل النقل.


ال --progress يقوم الخيار بطباعة البيانات المنقولة لكل ملف بالبايت ونسبة مئوية، وسرعة النقل، والوقت المستغرق، وعدد الملفات المنقولة، وعدد الملفات المتبقية.

rsync -aP /home/dave/geocoder /run/mount/drive2

استخدام الخيار -P لتوفير الإحصائيات الخاصة بنقل كل ملف

يتم تمرير الإخراج بسرعة كبيرة، ومن الصعب قراءته. يمكنك تحسين الأمور قليلاً عن طريق إزالة -v خيار (verbose) من الأمر. وحتى في هذه الحالة، لا يزال من الصعب قراءته أثناء مروره بسرعة.

إحصائيات النقل لكل ملف منقول


غالبًا ما يكون من المفيد مراقبة تقدم عملية النقل الشاملة. يمكنك القيام بذلك باستخدام الخيار –info، وتمرير “progress2” إليه كمعلمة.

sync -a --info=progress2 /home/dave/geocoder /run/mount/drive2

إحصائيات نقل rsync الإجمالي

يؤدي هذا إلى تقديم تقرير تقدم مفيد فعليًا.

مثل cp على المنشطات

ال rsync إن الأمر سريع ومرن ويستحق الوقت الذي تستغرقه للتعرف عليه. الشكل الأساسي للأمر هو rsync الأمر مع -av ليس من الصعب على الإطلاق تذكر الخيارات ودليل المصدر ودليل الوجهة.

بالنسبة للعديد من حالات الاستخدام، هذا كل ما تحتاجه. اعتد على ذلك وسيأتي الباقي بسهولة.

ذات صلة: دليل غير المبتدئين لمزامنة البيانات باستخدام Rsync


أضف تعليق