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

نشرت: 2022-10-28
كمبيوتر محمول Linux يعرض موجه bash
fatmawati achmad zaenuri / Shutterstock.com

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

جدول المحتويات

أداة rsync

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

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

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

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

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

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

إليك مثال بسيط يدفعنا إلى المضي قدمًا. سنقوم بنسخ الملفات من دليل "ملفات المشروع" إلى دليل "المستندات". نحن نستخدم خيارين ، الخيار -a (أرشيف) وخيار -v (مطوّل). يخبر الخيار المطول 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 (الأرشيف) في الواقع مجموعة من الخيارات الأخرى. إنه نفس استخدام كل هذه الخيارات:

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

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

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

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

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

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

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

 المستندات /
 ls المستندات / ملفات المشروع / 

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

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

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

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

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

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

 ls run / mount / drive2 / project-files / 

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

ذات صلة: ماذا تفعل عندما يفشل محرك الأقراص الثابتة

4. القيام بتشغيل جاف أولاً

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

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

لفرض التشغيل الجاف ، نستخدم خيار --dry-run الجاف.

 rsync -av - تشغيل جاف / 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 المكود الجغرافي 

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

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

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

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

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

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

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

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

 rsync -av / home / dave / geocoder [email protected]: / home / dave / Downloads
 rsync -av / home / dave / geocoder [email protected]: / home / dave / Downloads 

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

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

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

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

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

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

يقوم هذا الأمر بنسخ ملفات التعليمات البرمجية المصدر 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 (مطوّل) من الأمر. حتى مع ذلك ، لا يزال من الصعب قراءتها لأنها تتأرجح.

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

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

 مزامنة -a --info = progress2 / home / dave / geocoder / run / mount / drive2 

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

هذا يعطي تقرير مرحلي مفيد بالفعل.

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

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

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

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