/ / كيفية استخدام rsync لعمل نسخة احتياطية من البيانات الخاصة بك على لينكس

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

راية

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

يمكن استخدامه على أنظمة Windows ولكن فقطمتاح من خلال العديد من المنافذ (مثل Cygwin) ، لذلك في هذا الدليل سوف نتحدث عن إعداده على Linux. أولاً ، نحتاج إلى تثبيت / تحديث عميل rsync. في توزيعات Red Hat ، يكون الأمر "yum install rsync" وفي دبيان "sudo apt-get install rsync".

rsync1

الأمر على Red Hat / CentOS ، بعد تسجيل الدخول كجذر (لاحظ أن بعض توزيعات Red Hat الحديثة تدعم طريقة sudo).

rsync4

الأمر على دبيان / أوبونتو.

باستخدام rsync للنسخ الاحتياطي المحلي

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

$ rsync -av --delete /Directory1/ /Directory2/

سوف الكود أعلاه مزامنة محتوياتDirectory1 إلى Directory2 ، ولا تترك أي اختلافات بين الاثنين. إذا وجد rsync أن Directory2 يحتوي على ملف لا يحتويه Directory1 ، فسيحذفه. إذا عثر rsync على ملف تم تغييره أو إنشاؤه أو حذفه في Directory1 ، فسوف يعكس تلك التغييرات نفسها على Directory2.

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

1. -a = تكراري (recurse إلى أدلة) ، ارتباطات (نسخ الارتباطات كرموز symlinks) ، perms (الاحتفاظ بالأذونات) ، الأوقات (الحفاظ على أوقات التعديل) ، المجموعة (مجموعة الحفاظ على) ، المالك (الحفاظ على مالك) ، الحفاظ على ملفات الجهاز ، والحفاظ على ملفات خاصة الملفات.
2. -v = مطوّل. السبب في أنني أعتقد أن المطول مهم حتى تتمكن من رؤية بالضبط ما يقوم به rsync. فكر في هذا: ماذا لو ساء محرك الأقراص الثابت الخاص بك ، وبدأ في حذف الملفات دون علمك ، ثم تقوم بتشغيل البرنامج النصي rsync ويدفع هذه التغييرات إلى النسخ الاحتياطية ، وبالتالي حذف جميع مثيلات الملف التي لا تريد الحصول عليها تخلص من؟
3. –delete = هذا يخبر rsync بحذف أي ملفات في Directory2 غير موجودة في Directory1. إذا اخترت استخدام هذا الخيار ، فإنني أوصي أيضًا باستخدام خيارات المطوّل ، للأسباب المذكورة أعلاه.

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

rsync2

لقطة الشاشة أعلاه تخبرنا أن File1.تم اكتشاف txt و File2.jpg إما أنهما جديدان أو تم تغييرهما بطريقة أخرى من النسخ الموجودة في Directory2 ، وبالتالي تم نسخها احتياطيًا. نصيحة Noob: لاحظ الخطوط المائلة الخلفية في نهاية الأدلة في أمر rsync - تلك ضرورية ، تأكد من تذكرها.

سنقوم بتبديل عدد قليل من المفاتيح المفيدة في نهاية هذا البرنامج التعليمي ، ولكن تذكر فقط أن ترى قائمة كاملة يمكنك كتابة "man rsync" وعرض قائمة كاملة من رموز التبديل للاستخدام.

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

باستخدام rsync للنسخ الاحتياطي الخارجية

يمكن تكوين rsync بعدة طرق مختلفةبالنسبة للنسخ الاحتياطية الخارجية ، ولكننا سنتجاوز الطريقة الأكثر عملية (وأيضًا الأسهل والأكثر أمانًا) المتمثلة في نفق rsync عبر SSH. معظم الخوادم وحتى العديد من العملاء لديهم بالفعل SSH ، ويمكن استخدامه للنسخ الاحتياطي rsync. سنعرض لك عملية الحصول على نسخة واحدة من جهاز Linux للنسخ الاحتياطي لآخر على شبكة محلية. ستكون العملية هي نفسها بالضبط إذا كان هناك مضيف واحد على الإنترنت في مكان ما ، فقط لاحظ أن المنفذ 22 (أو أي منفذ قمت بتكوين SSH عليه) ، سيحتاج إلى إعادة توجيهه على أي معدات شبكة على جانب الخادم من الأشياء.

على الخادم (الكمبيوتر الذي سيتلقى النسخ الاحتياطية) ، تأكد من تثبيت SSH و rsync.

# yum -y تثبيت ssh rsync

# sudo apt-get install ssh rsync

بخلاف تثبيت SSH و rsync علىالخادم ، كل ما يجب فعله هو إعداد مستودعات على الخادم حيث تريد نسخ الملفات احتياطيًا ، والتأكد من إغلاق SSH. تأكد من أن المستخدم الذي تخطط لاستخدامه لديه كلمة مرور معقدة ، وقد يكون من الجيد أيضًا تبديل المنفذ الذي يستمع إليه SSH (الافتراضي هو 22).

سوف نقوم بتشغيل نفس الأمر الذي قمنا به من أجلباستخدام rsync على جهاز كمبيوتر محلي ، ولكن قم بتضمين الإضافات الضرورية لنفق rsync عبر SSH إلى خادم على شبكتي المحلية. بالنسبة للمستخدم "geek" الذي يتصل بـ "192.168.235.137" وباستخدام نفس المحولات المذكورة أعلاه (-av - حذف) ، سنقوم بتشغيل ما يلي:

$ rsync -av –delete -e ssh /Directory1/ geek@192.168.235.137:/Directory2/

إذا كان لديك SSH يستمع إلى بعض المنافذ بخلاف 22 ، فستحتاج إلى تحديد رقم المنفذ ، كما في هذا المثال حيث أستخدم المنفذ 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ geek@192.168.235.137:/Directory2/

rsync3

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

أتمتة النسخ الاحتياطي rsync

يمكن استخدام Cron على Linux لأتمتة تنفيذ الأوامر ، مثل rsync. باستخدام Cron ، يمكننا تشغيل نظام Linux لدينا لنسخ احتياطية ليلية ، أو مع ذلك غالبًا ما ترغب في تشغيلها.

لتحرير ملف جدول cron للمستخدم الذي قمت بتسجيل الدخول به ، قم بتشغيل:

$ crontab -e

ستحتاج إلى أن تكون على دراية vi من أجل تحرير هذا الملف. اكتب "I" للإدراج ، ثم ابدأ في تحرير ملف جدول cron.

يستخدم Cron بناء الجملة التالي: دقيقة من الساعة ، ساعة من اليوم ، يوم من الشهر ، شهر من السنة ، يوم من الأسبوع ، أمر.

قد يكون الأمر مربكًا قليلاً في البداية ، لذلك اسمحوا لي أن أقدم لك مثالًا. سيقوم الأمر التالي بتشغيل الأمر rsync كل ليلة في الساعة 10 مساءً:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

تحدد "0" الأولى دقيقة الساعة ، بينما تحدد "22" 10 مساءً. نظرًا لأننا نريد تشغيل هذا الأمر يوميًا ، فسنترك بقية الحقول بعلامات نجمية ثم نلصق الأمر rsync.

بعد الانتهاء من تكوين Cron ، اضغط على Escape ، ثم اكتب ": wq" (بدون علامتي الاقتباس) واضغط على enter. هذا سيوفر التغييرات الخاصة بك في السادس.

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

ميزات مفيدة أخرى

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

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

rsync5

الأمر أعلاه يأخذ الملفات منDirectory1 ، يضعها في /ZippedFiles/archive.zip ثم rsyncs هذا الدليل إلى Directory2. في البداية ، قد تعتقد أن هذه الطريقة ستثبت أنها غير فعالة بالنسبة للنسخ الاحتياطية الكبيرة ، بالنظر إلى أن ملف zip سيتغير في كل مرة يتم فيها إجراء أي تغيير على ملف. ومع ذلك ، فإن rsync ينقل البيانات التي تم تغييرها فقط ، لذلك إذا كان ملفك المضغوط هو 10 غيغابايت ، ثم قمت بإضافة ملف نصي إلى Directory1 ، فسوف تعلم rsync أن كل ما قمت بإضافته (على الرغم من أنه موجود في ملف مضغوط) ولن ينقل سوى عدد قليل من الكيلوبايت من البيانات التي تم تغييرها.

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

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