بسم الله الرحمن الرحيم
عزيزي
في لوحة التحكم WHM يمكنك من ارجاع النسخة الاحتياطية لاي موقع تريده
بالطريقة التالية ( طبعا للمستخدم الجذري root )
من قائمة الخيارات اذهب الى Backup
ولديك خياران
1- اعادة موقع واحد فقط Restore Backups
2- اعادة عدة مواقع Restore Multiple Backups
وبعد ان تقوم بالاختيار ولنفرض استعادة موقع واحد سوف تأتيك ثلاث خيارات
1- النسخة اليومية daily
2- النسخة الاسبوعية weekly
3- النسخة الشهرية monthly
قم باختيار النسخة التي تريد ارجاعها وبعد سوف يتم تحويك للصفحة تحتوي جميع المواقع لديك اختر الموقع الذي تريد اعادة النسخة الاحتياطية له مع مراعاة الاختيارات في الاسفل
Recreate account
Give Ip address (only if recreating)
Restore Subdomain Entires
Restore Mail config
Restore Mysql Dbs
واختر منها ماتريد ارجاعه
هذه هي طريقة اعادة النسخة الاحتياطية لا موقع وبالمثل لمجموعة مواقع .
والان سوف نقوم بكتابه سكريبت شيل بسيط او ضح فيه فكرة النسخة الاحتياطية للسيرفر مع امكانية ان تقوم بالتعديل في هذا السكريبت بما يناسب اختياراتك فصناعة السكريبت عملية بسيطة جدا والفكرة منها انها تقوم بتنفيذ الاوامر من ملف في وقت معين بدلا من ان تقوم ان بكتبتها كل مرة
كود PHP:
#!/bin/bash
#!for backup in /home/*
do
nice -19 cp-R $backup /backup &
done
قم بالغاء #! من اما for
للنظر للكود السابق
عبارة عن كود شيل سوف تقوم بكتابته في اي محرر اما على جهاز الكمبيزتر وتقوم برفعه للسيرفر او ان تقوم بكتابته في السيرفر باحد برامج التحرير (vi,pico) او غيرها
قم اولا بانشاء مجلد بإسم backup ( يمكنك انشاءه في اي مكان وسوف تقوم بتعديل السكريبت السابق حسب المكان الذي وضعت هذا المجلد فيه ) ولكن انشاء المجلد في مجلد home ليس فكرة صائبة و كما يمكنك من انشاءه على هارد دسك اخر ثم سوف تقوم باضافة السطر التالي للكود في بدايته
كود PHP:
mount /dev/hdx /backup
وهذا الكود يقوم بإخبار النظام بان المجلد backup موجود على الهارد دسك hdx ( طبعا غير مايلزم حسب الملفات لديك )
وفي نهاية السكريبت ضع هذا الكود
كود PHP:
unmount /dev/hdx /backup
وهو سوف يقوم بالغاء عملية تعريف المجلد على الهارد دسك الاخر
بعد ان قمت بإنشاء المجلد backup في المكان الذي تريده قم بتجربة السكريبت شيل عن طريق كتابة اسمه وتسبقة علامتي ./ على النحو التالي ( بافرض انك قمت بتسمية الملف backup
كود PHP:
root@dns [/]#./backup
عندها سوف تقوم بالدخول الى مجلد backup وسوف تجد نسخة من جميع مجلدات home
لنشرح السكريبت
السطر الاول يخبر النظام بان مكان تنفيذ السكريبت هو الغلاف bash ( طبعا يمكنك تغير الغلاف والاوامر حسب ماتريد )
السطر الثاني يقوم بعمل حلقة تكرارية for
اي ان البرنامج سوف يقوم بالدخول على مجلد home ثم بعد ذلك ياخذ المجلد الاول ويضعه في المتعير
$backup ثم يقوم بتنفيذ الاوامر مابين do و done على المجلد الاول وبعد ان ينتهي يقوم باخذ المجلد الثاني وينفذ الاوامر عليه وهكذا حتى تنتهي المجلدات
السطر الثالث يخبر النظام بان حلقة تنفيذ الاوامر تبدأ من هنا do الى done
السطر الرابع يخبر النظام بالاوامر التي سوف يقوم بتنفيذها وفي مثالنا هذا هو ان يقوم النظام باخذ نسخة من المتغير $backup ووضعها في المجلد backup بنفس الاسم وتلاحظ في بداية الامر وجود الامر nice وهو امر يقوم بوضع الامر الذي يليه في اولوية منخفضة جدا وهي 19
(اعلى اولوية هي -20 واقل اولوية هي 20 والافتراضي 10) وهذا الامر مهم حتي لا يكون هنالك ضغط على السيرفر وتجد في نهاية الامر العلامة & وهي تقوم بارسال الامر الى الخلفية
السطر الخامس يخبر النظام بانتهاء عملية تنفيذ الاوامر
يمكنك في السطر الخامس ان تعدل الاوامر حسب ماتريد فاذا كنت تريد عمل مجلدات ارشفه تستخدم الامر tar وتستطيع اضافة اكثر من اول مثلا ان يقوم بنسخها ومن ثم يقوم بوضع نسخة مارشفه او مضغوطة و و و و
( طبعا هذا السكريبت لتوضيح عملية تكرار بسيطة وتستطيع تعديله لتحسين مخراجاته )
وبعد ان قمنا بصنع السكريبت بقي ان نقوم بجدولته ليتم تنفيذه في اوقات معينه هنالك عدة طرق لعمل ذلك واسهل هذه الطرق هي ان تقوم بنسخ هذا الملف الى احد المجلدات التالية
1-etc/cron.daily ( سوف يقوم بتشغيل الملف يوميا )
2- etc/cron.hourly ( سوف يقوم بتشغيل الملف في كل ساعة)
3- etc/cron.monthly ( سوف يقوم بتشغيل الملف كل شهر)
4-etc/cron.weekly ( سوف يقوم بتشغيل الملف كل اسبوع)
ولمعرفة المزيد عن الجدولة
يمكنك استخدام الامر crontab وهو سوف يقوم بعملية الجدولة نيابة عنك وحسب الوقت الذي تريده
والصيغه العامة له هي
كود PHP:
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
وخارج الامر هو بالنسبة للمجلدات السابقة
كود PHP:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
ولتفهم هذا المخرج فهو عبارة عن التالي
minute hour day month dayofweek command
الامر يوم في الاسبوع شهر يوم ساعة دقيقة
يعني بالنسبة للسطر الاول فسوف يقوم النظام بتنفيذه في
الساعة 4 ودقيقتين من كل يوم وفي كل اسبوع وفي كل شهر
* ولكن اهتم بوضع الاولوية كثيرا حتى لا تسبب بطئ على السيرفر
( وعندما تفهم الكود السابق سوف تتعرف على كيفية نسخ كذلك قواعد البيانات و و و و )
ولكن اطلق لنفسك العنان في التفكير وفهم الاوامر
واتمنى التوفيق للجميع
اتمنى من الله العلي القدير ان اكون اوصلت معلومة مهمه للجميع
فلا تنسونا من دعائكم
وتقبلوا تحياتي