10 أمثلة مفيدة لأمر Linux rsync
نشرت: 2022-10-28 يعد أمر Linux rsync
أداة قوية لنسخ الملفات ومزامنة المجلدات. فيما يلي عشر حالات استخدام شائعة يمكنك استخدامها بشكل جيد على أنظمتك الخاصة.
أداة rsync
تقوم أداة rsync
بنسخ الملفات والدلائل بين جهازي كمبيوتر. يستخدم خوارزمية معقدة تفحص أشجار الدلائل للعثور على الملفات الموجودة على الكمبيوتر المصدر غير الموجودة على الكمبيوتر الوجهة. يتم إرسال هذه الملفات إلى الكمبيوتر الوجهة. ما يجعل rync
ذكيًا للغاية هو أنه يمكنه معرفة أجزاء الملفات الموجودة التي تم تعديلها ، ويرسل فقط الأجزاء التي تم تغييرها .
يمكنك استخدام rsync
لنسخ الملفات إلى موقع مختلف على محرك الأقراص الثابتة ، أو إلى محرك أقراص ثابت مختلف في نفس الكمبيوتر ، أو محرك أقراص USB متصل خارجيًا ، أو أي موقع آخر يمكن الوصول إليه عبر الشبكة.
علاوة على ذلك ، يمكن لـ 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 /
يُظهر استخدام ls
في مجلد "المستندات" أنه تم نسخ الملفات.
أثناء عمل rsync
، يتم سرد الملفات أثناء نسخها. قيل:
- عدد البايت المرسلة.
- عدد البايت المتلقاة. قبل أن يتم نقل الملف ، يجب على
rsync
تحديد الملفات التي يجب نقلها. للقيام بذلك ، يجب استرداد بعض المعلومات حول الملفات الموجودة على الوجهة بواسطةrsync
. هذه المعلومات واردة في البايت المتلقاة. - سرعة النقل.
- الحجم الإجمالي للملفات المنسوخة.
- "التعجيل". هذه هي نسبة الحجم الإجمالي مقسومًا على مجموع البايت المرسلة والمستلمة. كلما زاد هذا الرقم ، زادت كفاءة التحويل.
قمنا بتعديل الملف النصي في الدليل المصدر وكررنا الأمر rsync
.
rsync -av / home / dave / project-files / / home / dave / Documents /
هذه المرة الملف الوحيد الذي يحتاج إلى التحديث هو الملف النصي الذي قمنا بتعديله. رقم التسريع الآن 30850. هذا هو مدى فعالية نسخ الجزء المعدل من هذا الملف الفردي ، بدلاً من نسخ جميع الملفات.
يمثل الخيار -a
(الأرشيف) في الواقع مجموعة من الخيارات الأخرى. إنه نفس استخدام كل هذه الخيارات:
- r : اعمل بشكل متكرر من خلال أشجار الدلائل في الدليل المصدر وانسخها إلى الدليل الوجهة ، وقم بإنشائها إذا لم تكن موجودة بالفعل هناك.
- l : نسخ الارتباطات الرمزية كروابط رمزية.
- p : الاحتفاظ بأذونات الملف.
- t : الحفاظ على أوقات تعديل الملف.
- g : الاحتفاظ بأذونات المجموعة.
- o : الحفاظ على ملكية الملف.
- د : نسخ الملفات الخاصة وملفات الجهاز. يمكن أن تكون الملفات الخاصة عناصر تتمحور حول الاتصالات والتي يتم التعامل معها مثل الملفات ، مثل مآخذ التوصيل وإخراج الإدخال الأول الذي يخرج أولاً (fifos). ملفات الجهاز هي ملفات خاصة توفر الوصول إلى الأجهزة والأجهزة الزائفة.
هذه تركيبة مستخدمة بشكل متكرر بحيث توفر rsync
الخيار -a
(أرشيف) كطريقة مختصرة لاستدعاءهم جميعًا.
2. نسخ دليل إلى دليل مختلف
إذا نظرت إلى أمر rsync
السابق ، فسترى شرطة مائلة للأمام "/" على مسار ملف دليل المصدر. هذا مهم. يخبر rsync
بنسخ محتويات الدليل. إذا لم تقدم الشرطة المائلة اللاحقة للأمام ، فسيقوم rsync
بنسخ الدليل ومحتوياته .
rsync -av / home / dave / project-files / home / dave / Documents /
هذه المرة يضاف اسم الدليل إلى اسم الملف كما هو مدرج. إذا نظرنا داخل دليل الوجهة ، فسنرى أن المجلد المصدر قد تم نسخه مع الملفات الموجودة بداخله.
المستندات /
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
يتم سرد الملفات التي كان من الممكن نسخها ، ونحصل على الإحصاءات المعتادة ، متبوعة بالرسالة (DRY RUN)
حتى لا نعرف شيئًا لم يحدث بالفعل.
5. حذف الملفات في دليل الوجهة
يقوم الخيار --delete
بإخبار rsync
بحذف الملفات والدلائل الموجودة في الدليل الوجهة غير الموجودة في الدليل المصدر. هذا يعني أن الدليل الوجهة سيكون نسخة طبق الأصل من الدليل المصدر. سنكون --dry-run
أولاً.
rsync -av --delete --dry-run / home / dave / geocoder / run / mount / drive2
علمنا أنه سيتم حذف ملفين. إذا كنا متأكدين من أننا لا نهتم بأنه سيتم حذفها ، فيمكننا إزالة خيار --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
فقط بحذف الملفات من الدليل المصدر. لا يحذف الدليل المصدر ولا أي أدلة فرعية ، فقط الملفات الموجودة فيها. يمكننا أن نرى ذلك باستخدام الخيار -R
(العودي) مع ls
في الدليل المصدر.
ls -R المكود الجغرافي
7. نسخ الملفات إلى جهاز كمبيوتر بعيد
لمزامنة المجلدات مع كمبيوتر بعيد ، يجب تثبيت rsync
على كلا الجهازين. قم بإعداد اتصال SSH بين جهازي الكمبيوتر قبل محاولة استخدام rsync
للكمبيوتر البعيد.
يجب أن تكون قادرًا على تسجيل الدخول عن بُعد كمستخدم عادي على الكمبيوتر البعيد حتى يعمل 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
نحصل على نفس المعلومات التي يتم إبلاغنا بها كما نفعل عندما نقوم بنسخ الملفات محليًا.
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
الملفات الوحيدة التي تم نسخها هي تلك التي قمنا بتضمينها على وجه التحديد.
9. ضغط الملفات أثناء النقل
يؤدي الخيار -z
(ضغط) إلى قيام rsync
بضغط الملفات المنقولة. لا يتم تخزينها كملفات مضغوطة على الكمبيوتر الوجهة ، ومع ذلك ، يتم ضغطها فقط أثناء النقل نفسه. يمكن أن يؤدي ذلك إلى تسريع عمليات النقل الطويلة.
rsync -avz / home / dave / geocoder / run / mount / drive2
10. رصد التقدم
بالحديث عن عمليات النقل الطويلة ، يمكننا إضافة بعض الإحصائيات حتى نتمكن من رؤية تقدم التحويل.
يضيف الخيار -P
(جزئي ، تقدم) بالفعل خيارين ، - --partial
و --progress
. يخبر الخيار - --partial
rsync
بالاحتفاظ بالملفات المنقولة جزئيًا في حالة فشل النقل. هذا يوفر الوقت عند إعادة تشغيل النقل.
يطبع الخيار --progress
، لكل ملف ، البيانات المنقولة بالبايت وكنسبة مئوية ، وسرعة النقل ، والوقت المستغرق ، وعدد الملف الذي يتم نقله ، وعدد الملفات المتبقية.
rsync -aP / home / dave / geocoder / run / mount / drive2
يمر الإخراج بسرعة كبيرة ، ومن الصعب قراءته. يمكنك تحسين الأمور قليلاً عن طريق إزالة الخيار -v
(مطوّل) من الأمر. حتى مع ذلك ، لا يزال من الصعب قراءتها لأنها تتأرجح.
غالبًا ما يكون من المفيد مراقبة تقدم عملية النقل الإجمالية. يمكنك القيام بذلك باستخدام الخيار –info ، وتمريره "progress2" كمعامل.
مزامنة -a --info = progress2 / home / dave / geocoder / run / mount / drive2
هذا يعطي تقرير مرحلي مفيد بالفعل.
مثل cp على المنشطات
الأمر rsync
سريع ومرن ويستحق الوقت الذي تستغرقه للتعرف عليه. ليس من الصعب تذكر الشكل الأساسي لأمر rsync
مع خيارات -av
المصدر ودليل الوجهة على الإطلاق.
بالنسبة للعديد من حالات الاستخدام ، هذا كل ما تحتاجه. كن مرتاحًا مع ذلك وسيأتي الباقي بسهولة.
ذو صلة: دليل غير المبتدئين لمزامنة البيانات مع Rsync