أثناء قراءتي في النت عن النسخ الإحتياطي لقواعد البيانات بطريقة التزامن وجدت موضوع مهم لكل أصحاب المواقع او قواعد البيانات ... وفكرت في انشاء وكتابة هذ الموضوع الذي نأمل في أن نتشارك الرأي فيه للوصول الى مقال جميل يستفيد منه الجميع .
بداية سوف اشرح الموضوع كالتالي :
لدي موقع وليكن www.domian1.com ( موقع به قاعدة بيانات ) ولديه صلاحيات ssh ولدي ولدي سيرفر VPS بكامل الصلاحيات . لتنفرض انك تريد عمل نسخ احتياطي لكامل المجلد home وما يحتويه من مجلدات التي هي مجلدات المواقع . كذلك عمل نسخ احتياطي للمجلد .va/lib/mysql والذي يحتوي جميع قواعد البيانات كذلك عمل نسخ احيتاطي للمجلد bckaup والذي هو للنسخ الإحيتاطي الداخلي في السيرفر .
1- كيف اقوم بعمل نسخ احتياطي دوري لحظي لهذه المجلات من حساب VPS الى www.domain1.com بشكل ألي ودوري .
2- ماذا يحدث في حال اختراق السيرفر VPS وهل يعمل النسخ الأحتياطي .
3- ما هي الأوامر التي استخدمها للقيام بذلك .
الإجابات :
1- الطريقة الأولى انك سوف تدخل بحساب root على السيرفر وتقوم بأستخدام الأمر
cd /
tar -czvf home.tgz
ثم
cd lib
tar -czvf mysql.tgz
cd/
cd/
tar -czvf backup.tgz
الأن لديك 3 ملفات مضعوطة فيها مرادك هي home.tgz لكل الموقع و mysql.tgz للقواعد backup.tgz للنسخ الأحتياطي . عليك الدخول للموقع الأخر www.domain1.com وكتابة الأوامر التالية :
بذلك انت قمت بعملية نسخ كاملة للسيرفر ونقلها لموقع أخر ... ربما تكون هذه العملية مفيده ولكنها متعبة فهل يمكن عملها بطريقة ألية ليقوم الموقع الأول بجلب هذه الملفات دورياً ... ويقوم الأول بعمل النسخ دورياً وبالتالي تكون العملية ألية ... نعم .... ممكن ذلك ... كيف ... تابع ...:)
اولآً:
نقوم بعمل ملف اسمه .sh ونضع فيه امر طلب قواعد البيانات من السيرفر VPS .
wget http://www.domin2.com/bksend/home.tgz
wget http://www.domin2.com/bksend/mysql.tgz
wget http://www.domin2.com/bksend/backup.tgz
;;
esac
exit 0
نخفظ الملف باسم comesql.sh ونرفعه على الموقع الأول www.domain1.com ونعطيه صلاحيات 755
بعدها نذهب للوحة التحكم cpanel ونقوم بجدول عمل الأمر يومياً من خلال cronjob .
ثانياً :
نقوم بعمل ملف اسمه .sh ونضع فيه امر طلب نسخ المجلدات في VPS .
cd /
tar -czvf home.tgz
ثم
mv home.tgz /home/mksend
cd var
cd lib
tar -czvf mysql.tgz
mv mysql.tgz /home/mksend
cd/
cd/
tar -czvf backup.tgz
mv backup.tgz /home/mksend
;;
esac
exit 0
نخفظ الملف باسم sendbackup.sh ونرفعه على الموقع الأول www.domain2.com ونعطيه صلاحيات 755 ونضعه في مجلد etc ضمن cron.daily .
مع ذلك هناك طرق افضل وهي ما نود مناقشتها بالاعتماد على أمر rsync (remote synchronizer)
تجد ملفات السورس كود و البايناريز , هذا هو السورس كود:
http://samba.org/ftp/rsync/rsync-2.6.9.tar.gz
لفك الضغط اعمل التالي( يجب ان تكون الرووت) :
انتقل للمجلد الخاص به
اطبع التالي:
make
make install
rsync --daemon
تأكد من انه يعمل بكتابة امر التالي:
هل ترى اسم البرنامج موجود في القائمة؟ اذا هيا نكمل,
الان نحتاج الى ملفين , اولهما هو ملف rsyncd.conf و الثاني هو rsyncd.secrets
نذهب الى /etc و نكتب التالي:
سيفتح ملف جديد اكتب التال فيه و احفظه:
motd = /etc/motd logfile = /var/log/rsyncd.log max connections = 25 uid =root gid =root pid file = /var/run/rsyncd.pid [data] path=/data auth users = root secrets file = /etc/rsyncd.secrets
لنشرح الان:
motd = /etc/motd
اذا اردت وضع رسالة ترحيبية لمن يدخل للسيرفر ( في هذه الحالة هو انت) تضعها في هذا الملف و ان لم تجده اصنع ملف جديد بهذا الاسم.
logfile = /var/log/rsyncd.log
ملف اللوغ للبرنامج , كل الخطوات تسجل هنا و تستطيع الرجوع له عند حدث الاخطاء.
max connections = 25
عدد الذين يدخلون لعمل الباك اب دفعة واحدة
uid =root gid =root
اختصار ل user id and group id
و هنا المسموح له هو الرووت فقط
pid file = /var/run/rsyncd.pid
ال process id للبرنامج يخزن في هذا الملف
[data]
هذا سيكون اسم المشاركة في الملفات في السيرفر
path=/data
هنا يكون عنوان المجلد الذي يحتوي على الملفات التي تريد عمل الباك اب لها , و يمكنك عمل باك اب للسيرفر كله بتغيير هذا المجلد حسب ما تراه مناسباً لك.
auth users = root secrets file = /etc/rsyncd.secrets
الاول يعني الاشخاص المخول لهم بعمل الباك ابملف السكرت سنتكلم عنه الان ولكن معناه مكان الباسودرات اليوزرات في السيرفر.احفظ الملف.
الان نذهب الى /etc و نكتب التالي:
اكتب التالي:
root:
احفظ الملف
الان كل شي جاهز اذهب الى جهازك المحلي و اكتب الامر التالي:
rsync –avz www.domain2.com::data /backupdirectory
عنوان الموقع او السرفر بالاسم او بالايبي للذي تريد عمل الباك اب له متبوع ب :: ثم اسم مشاركة الملفات
الذي ذكرناه بالسابق في ملف rsync.conf ثم متبوع باسم المجلد الذي ترغب في وضع ملفات الباك اب فيه , اي المجلد الموجود في جهازك المحلي .
سيسألك عن الباسوورد للروت و تضع الباسوورد و بعد ذلك سيكون كل شي على ما يرام و يبدأ الباك اب.
هنا نصل الى نهاية الموضوع
اتمنى ان يكون قد اضاف شيئا الى معلوماتكم وانتظر تلعيقاتكم وملاحظاتكم التي من شأنها أن شاء الله ان ترتقي بهذا الموضوع .