النتائج 1 إلى 2 من 2

الموضوع: RSNAPSHOT، من أفضل حلول النسخ الإحتياطي للسيرفر

  1. #1

    RSNAPSHOT، من أفضل حلول النسخ الإحتياطي للسيرفر



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

    "من خلال تعاملي مع سيرفرات لينكس ويونكس، أواجه مشاكل مع أخذ النسخ الأحتياطية للسيرفرات أو المواقع لأجل أسترجعها بوقت الحاجة لها.
    طبعاً، سبب إسترجاعي للنسخ الإحتياطية مايخفى على أي أدمن، صاحب سيرفر أو صاحب موقع، الا وهو وجود مشكلة مثلاً في السيرفر وأسرع وأضمن حل لأجل تصلح هالمشكلة إنك تسترجع نسخة إحتياطية لأحد الأيام أو الأسابيع الماضية، أو لأي سبب ثاني راجع للأدمن.
    لكن، هل فيه أحد واجه فيكم مشاكل مع كبر حجم النسخ الأحتياطية؟
    شوف السيناريو هذا:
    عندي موقع، وملفات الموقع حجمها يتجاوز على سبيل المثال 4 قيقا. ويومياً السيرفر يأخذ بشكل تلقائي نسخة إحتياطة الساعة 3 بالليل. بعد أسبوع – 7 أيام – كم المساحة اللي أستهلكتها النسخ الأحتياطية؟
    4 قيقا * 7 أيام = 28 قيقا!

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

    1- فكرة برنامج rsnapshot.
    2- تركيب البرنامج على سيرفر لينكس.
    3- تركيب البرنامج على سيرفر يونكس FreeBSD.
    4- إعداد البرنامج لأخذ نسخ إحتياطية تلقائية إلى مكان ثاني بداخل السيرفر.
    5- إعداد البرنامج لأخذ نسخ إحتياطية تلقائية إلى سيرفر خارجي بواسطة SSH:
    5.1- إنشاء مفتاح SSH عام خاص بالسيرفر.
    5.2- إعداد البرنامج للنسخ الأحتياطي البعيد عن طريق SSH.
    6- توضيح كيفية النسخ بالساعات، اليومي، الأسبوعي، الشهري.
    7- جدولة البرنامج لأخذ النسخ الإحتياطية تلقائياً بواسطة برنامج جدولة المهام Cron.
    1- فكرة برنامج rsnapshot:

    لأجل توضح لك فكرة البرنامج بشكل دقيق، تابع السيناريو الثاني هذا:
    ملفات موقعي حجمها 500 ميقا و موجودة في المجلد
    /home/jerais/public_html/
    وأحتاج إني أخذ نسخة إحتياطية يومية من الملفات وانقلها إلى مجلد إحتياطي.
    في أغلب برامج النسخ الإحتياطي الموجودة حالياً، كذا بتصير فكرة النسخ:
    اليوم الأول: 500 ميقا تم نسخها إلى المجلد الإحتياطي.
    اليوم الثاني: 500 ميقا ثانية تم نسختها إلى المجلد الإحتاطي.
    اليوم الثالث والرابع، نفس الكلام، نفس السيناريو الأول في بداية الموضوع، المساحة تُستهلك بإستمرار.
    لكن في برنامج rsnapshot، راح تصير الفكرة بالشكل هذا:
    اليوم الاول: 500 ميقا تم نسخها إلى المجلد الإحتياطي.
    اليوم الثاني -هنا الفكرة والتميز- : راح يأخذ النسخة الأحتياطة المأخوذة في اليوم الأول ويقارنها مع ملفات الموقع الحالية، إذا كان فيه فرق بين الملفات راح يطبق الخطة هذي:
    - الملفات المتغيرة\الجديدة: إنسخها من الموقع إلى المجلد الأحتياطي.
    - الملفات الغير متغيرة: راح ينشىء ملف صغير من نوع Hard Link يأشر على مكان الملف المنسوخ إحتياطياً في الهارديسك، يعني ما راح ينسخ الملف من جديد. إذا مو واضح مقصدي إسألني.
    لاحظت كيف متميز برنامج rsnapshot؟
    هذي قائمة تحتوي على بعض مميزاته:
    - النسخ الأحتياطي الذكي، بمقارنة وأخذ الملفات المتغيرة -فقط- من المصدر -مثلاً الموقع- إلى مكان النسخ الإحتياطي.
    - صغر المساحة المستهلكة بالنسخ الأحتياطي، حيث إنه ما يكرر نفس ملفات النسخ الأحتياطية السابقة، لكنه يسخدم تقنية Hard Links بدل من نسخ الملفات الغير متغيرة.
    - إمكانية النسخ إلى خارج السيرفر بواسطة SSH.
    - إمكانية النسخ الأحتياطي التلقائي.
    - النسخ الإحتياطي بفترات معينة، تستطيع تأخذ نسخ إحتياطية يومية، أسبوعية، شهرية أو سنوية.
    أقدر أكتب وأكمل مميزات البرنامج، لك بيطول الموضوع، أرجع لصفحته وإقراء عنه
    2- تركيب البرنامج على سيرفر لينكس:

    طبعاً لسيرفرات لينكس ريدهات\سنتوس\فيدورا

    كود:
      yum -yv install rsnapshot
    3- تركيب البرنامج على سيرفر يونكس FreeBSD:
    التثبيت بيكون عن طريق البورتس Ports
    كود:
     cd /usr/ports/sysutils/rsnapshot
     make install clean
    4- إعداد البرنامج لأخذ نسخ إحتياطية تلقائية إلى مكان ثاني بداخل السيرفر:

    بعد تثبيت البرنامج، الحين نبدإ إعداده لأجل يأخذ نسخ إحتياطية، قبل الإعداد، هذي معلومات السيرفر:
    ملفات الموقع موجودة على الإمتداد هذا:
    كود:
      /home/website/
    ومكان النسخ الإحتياطي راح يكون هنا:
    كود:
      /backup/
    الإعدادت راح تتم لسيرفر لينكس ريدهات\سنتوس\فيدروا، أدمن يونكس راح يلاقون بعض الإختلافات الإعتيادية في أماكن الملفات وطريق التشغيل.
    بعد التثبيت، نأخذ نسخة من الملف قبل التعديل للتراجع في حالة وجود أخطاء:
    كود:
      cp -v /etc/rsnapshot.conf /etc/rsnapshot.conf-default
    ثم نفتح الملف للتعديل
    كود:
      vi /etc/rsnapshot.conf
    في وسط الملف راح نلاقي المكان الإفتراضي للنسخ الإحتياطي:
    كود:
      # All snapshots will be stored under this root directory.
     #
     snapshot_root   /.snapshots/
    ونحرر خيار مكان مجلد النسخ الإفتراضي في السيرفر الحالي إلى
    كود:
      snapshot_root   /backup/
    بعدها، إنزل لأخر الملف، بتلاقي الجزء هذا:
    كود:
      ###############################
     ### BACKUP POINTS / SCRIPTS ###
     ###############################
     # LOCALHOST
     backup  /home/          localhost/
     backup  /etc/           localhost/
     backup  /usr/local/     localhost/
    ولأجل توضح الإعدادت بالخيار السابق:
    backup: أمر أخذ النسخة الإحتياطية
    /home/: المجلد المراد أخذ نسخة إحتياطية منه
    localhost/: هذا اسم المجلد بعد أخذ نسخة إحتياطية منه
    نعدل عليهم، ويصبح تعديلنا كذا:
    كود:
      backup /home/website/          website/
    وضع علامة التعليقات “#” بعد الأسطر الثانية لأجل تتجاهلها، يعني بيصير كذا تعديلنا:
    كود:
      # LOCALHOST
     backup /home/website/          website/
     #backup /etc/           localhost/
     #backup /usr/local/     localhost/
    إنتهينا!
    متبقي تنشئ مجلد النسخ الأحتياطية:
    كود:
      mkdir /backup
    الآن تستطيع أخذ نسخ إحتاطية للمواقع الموجودة على سيرفرك بعد تنفيذك للأمر:
    كود:
      #rsnapshot hourly
    الآن يتم آخذ النسخة الإحتياطية، تلاقي النسخة محفوظة تحت الإمتداد هذا:
    كود:
      /backup/hourly.0/website/
    راح أتطرق لفكرة Hourly -النسخ بالساعات- بخطوة رقم 6.
    5- إعداد البرنامج لأخذ نسخ إحتياطية تلقائية إلى سيرفر خارجي بواسطة SSH:

    فكرتنا هنا بأننا راح نأخذ نسخة إحتياطية من الموقع، ونرسلها إلى سيرفر ثاني عن طريق برتوكول SSH بشكل تلقائي بدون تدخل من قبل الأدمن.
    وعشان تتم الفكرة هذي، راح نستخدم مفاتيح الـ SSH العامة والخاصة لاجل تتم عملية الدخول للسيرفر الإحتياطي ثم حفظ النسخة الأحتياطية بداخله بشكل تلقائي وأوتوماتيكي بدون تدخل من قبلك.
    راح أنفذ الطريقة بدون الدخول لتفاصيل المفاتيح العمومية والخاصة بالـ SSH، إرجع لموسوعة ويكيبيديا أو الصفحة هذي لتعرف فكرة المفاتيح
    قبل أسترسل، هذي تفاصيل السيرفر الإحتياطي:
    السيرفر الأحتياطي اسمه: server02.jerais.com
    الأسم الخاص بالمستخدم اللي راح يستخدم بالنسخ الإحتياطي: backupuser
    مجلد النسخ الإحتياطي في السيرفر المخصص للنسخ الإحتياطي: /home/backupuser/webbackup/
    نبدأ بالتنفيذ:
    5.1- إنشاء مفتاح SSH عام خاص بالسيرفر:
    كود:
      $ssh-keygen -q
    راح يسألك:
    كود:
      Enter file in which to save the key (/home/userX/.ssh/id_rsa):
    مكان حفظ المفتاح الخاص فيك، إضغط إنتر لحفظ المفتاح في مكانه الإفتراضي -تحت مجلد .ssh في مجلد المستخدم-.
    كود:
      Enter passphrase (empty for no passphrase):
     Enter same passphrase again:
    السطرين الإخيرين لسؤالك عن كلمة مرور لفك تشفير المفاتيح في عند الأستخدام، إتركهم فارغين، وإرجع لنهاية الموضوع لتطرقي لخطورة إستخدام مفاتيح SSH بدون كلمة مرور.
    أنشئنا المفاتيح الخاصة بسيرفر المواقع، الآن ننقل المفتاح العام الخاص بسيرفرك إلى سيرفر النسخ الإحتياطية:
    كود:
      $scp .ssh/id_rsa.pub backupuser@server02.jerais.com:~/.ssh/authorized_keys
    تم، الآن جرب تدخل السيرفر الإحتياطي عن طريق SSH وبتلاقي إنك دخلت بدون باسوورد
    كود:
      $ ssh backupuser@server02.jerais.com
    ملاحظة مهمة: إقراء النقاط في نهاية الموضوع لتعرف المخاطر الامنية الممكن تصير لك بدخولك للسيرفر بدون باسوورد.
    5.2- إعداد البرنامج للنسخ الأحتياطي البعيد عن طريق SSH:

    مثل ما عملنا في الخطوة 4، نعمله هنا مع وجود فرق بسيط.
    حرر الملف
    كود:
      vi /etc/rsnapshot.conf
    وبنهايته عدل على مصدر ومكان النسخ الإحتياطي، بإضافتك لخيار النسخ الخارجي بواسطة SSH:
    كود:
      backup /home/website/ backupuser@server02.jerais.com:~/webbackup/
    6- توضيح كيفية النسخ بالساعات، اليومي، الأسبوعي، الشهري:

    في أحد الخطوات السابقة، وضحت إن النسخة الإحتياطية تم حفظها في مجلد اسمه hourly.0، هنا راح أوضح الفكرة بشكل مفصل.
    برنامج rsnapshot يدعم النسخ الإحتياطي بالساعات، بالأيام، بالأسابيع أو بالشهور، كيف تتم؟
    في ملف الإعددات، توجد الخيارات الإفتراضية هذي:
    كود:
      interval        hourly  6
     interval        daily   7
     interval        weekly  4
    لتوضيحها:
    interval: الفترة الزمنية
    hourly: بالساعات
    daily: يومي
    weekly: أسبوعي
    والأرقام مقصود فيها:
    hourly 6:راح يتم أخذ نسخة إحتياطية كل ساعة لمدة بعدد 6 نسخ إحتياطية
    daily 7: بالمثل، راح يتم أخذ نسخ أحتياطية كل يوم لمدة 7 أيام
    weekly 4: راح يتم أخذ نسخ إحتياطية أسبوعية لمدة 4 أسابيع
    لكن كيف تتم أخذ النسخ الإحتياطية بالساعات، الأيام أو الأسابيع؟
    أول نسخة إحتياطية راح يتم أخذها بالساعات بعد تنفيذ الأمر
    كود:
      $rsnapshot hourly
    راح يتم تسيمتها:
    hourly.0
    وثاني نسخة يتم أخذها بالساعات، راح يتم تسميتها
    hourly.1
    إلى ما يوصل إلى آخر النسخة الإحتياطية بالساعات رقم hourly.5، تعتبر آخر نسخة إحتياطية بالساعات مع إن ملف الإعدادت موضح فيه hourly 6 لأنه بدأ الترقيم من الرقم صفر.
    لما يوصل إلى hourly.5، ويشتغل النسخ الإحتياطي اليومي بالأمر
    كود:
      $rsnapshot daily
    راح يأخذ المجلد hourly.5، ويعيد تسميته إلى daily.0، إلى ما يوصل إلى daily.6.
    ولما يتنفذ أمر النسخ الإحتياطي الأسبوعي
    كود:
      $rsnapshot weekly
    راح أيضاً يأخذ المجلد daily.7 ويعيد تسميته إلى weekly.0، إلى ما يوصل إلى weekly.3.
    7- جدولة البرنامج لأخذ النسخ الإحتياطية تلقائياً بواسطة برنامج جدولة المهام Cron:

    حرر كرون:
    كود:
      $crontab -e
    وأضف عليها أسطر النسخ الإحتياطي بالساعات، الأيام والأسابيع:
    كود:
      0 */4 * * *       /usr/bin/rsnapshot hourly
     30 23 * * *       /usr/bin/rsnapshot daily
     50 23 * * 1       /usr/bin/rsnapshot weekly
    وبكذا، صار عندنا نسخ إحتياطي كل 6 ساعات يومياً، ونسخ إحتياطي كل يوم الساعة 11.30 ليلاً، وأسبوعياً كل يوم أثنين الساعة 11.50 ليلاً.
    نقاط:

    1- برنامج rsnapshotيعتمد إعتماد كلي على rsync، سواءفي النسخ الكلي Full Backup أو فقط في النسخ المتغير Incremental Backup
    2- ضرر إستخدام SSH بدون كلمة مرور هو إن في حالة سرقة مفتاحك الخاص أو تم إختراق السيرفر، راح يوصل المخترق إلى سيرفر النسخ الإحتياطي بكل سهولة.
    3- تستطيع تأخذ نسخ دورية من قواعد البيانات وترسلها إلى مكان إحتياطي عن طريق برنامجنا rsnapshot.
    4- الشرح طويل، لكن راح تشوف سهولة البرنامج مع أول إستخدام وتنفيذ
    5- في حالة تغييرك لأوقات Cron، حاول ما يكون هناك تعارض بين وقت أوقات النسخ، إرجع للخطوة رقم 6 لأجل يوضح مقصدي.
    هذا اللي في بالي الوقت حالي من نقاط، والموضوع راح يتم تحديثه في حالة وجود شيء في بالي."





    __________________
    من الاخر، أستخدم الشيل لأستمتع بنغمات لوحة المفاتيح.
    .
    .
    جريس الجريسي، محترف - حتى الثمالة - ﻷنظمة لينكس ويونكس FreeBSD ومختص بحلول المصادر المفتوحة.
    http://jerais.com/plug


  2. #2


    السلام عليكم ورحمة الله وبركاته

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

    وعندي امر خارج نطاق الموضوع وهو حماية تخطي Open base dir هل بالامكان وضع طريقه لحلها عند طريق المود سكيورتي او بحجب داله تخص هذا الامر.

    الامر الثاني اريدك ان تستمر بطرحك بكل امانه جدا جدا عجبني طرحك واتمنى لك التوفيق وما حبيت اثقل عليك بالاستفسارات ولا وني اريد اناقشك في امور خاصه بالحمايه

    وربي يوفقك يالغلا.





    __________________
    الحمدلله :)
    مجالس إماراتيين
    الأمانه ورد الحقوق واجبات لابد منها فلا تنسى قد يأتيك يوم لا تعلم ماذا تفعل بعد ان تطوى صفحات حياتك بقماش ابيض !!





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض