الصفحة الرئيسية » howto » كيفية استخدام rsync إلى النسخ الاحتياطي للبيانات الخاصة بك على لينكس

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

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

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


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


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

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

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

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

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

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

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

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

    تخبرنا لقطة الشاشة أعلاه أن File1.txt و File2.jpg تم اكتشافهما إما أنهما جديدان أو تم تغييرهما من النسخ الموجودة في Directory2 ، ولذلك تم نسخهما احتياطيًا. Noob tip: لاحظ الشُرَط المائلة في نهاية الدلائل في أمر 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 على جهاز كمبيوتر محلي ، ولكن مع تضمين الإضافات الضرورية لـ tunsing rsync عبر SSH إلى خادم على شبكتي المحلية. بالنسبة إلى المستخدم "المهوس" الذي يربط "192.168.235.137" واستخدام نفس المفاتيح على النحو الوارد أعلاه (-av -delete) ، سنقوم بتشغيل ما يلي:

    $ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /

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

    $ rsync -av -delete -e 'ssh -p 12345' / Directory1 / [email protected]: / Directory2 /

    كما ترى من لقطة الشاشة أعلاه ، فإن الناتج المعطى عند النسخ الاحتياطي عبر الشبكة يشبه إلى حد كبير عند النسخ الاحتياطي محليًا ، والشيء الوحيد الذي يتغير هو الأمر الذي تستخدمه. لاحظ أيضًا أنه طلب كلمة مرور. هذا هو المصادقة مع 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 ، اضغط على الهروب ، ثم اكتب ": wq" (بدون علامات الاقتباس) واضغط على Enter. سيؤدي ذلك إلى حفظ تغييراتك في vi.

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

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

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

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

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

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

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