[شرح] موضوع عن الطرق الصحيحة لاخذ باك اب ، ومشاكل استرجاع الباك اب

Gulfhosted.com

عضو جديد
20 يوليو 2009
18
2
0
السلام عليكم ورحمة الله وبركاته

الموضوع عن مشكلة اخد باك اب لموقع على سيرفر او مشكلة استرجاع الباك اب على سيرفر

ممكن المشكلة دي من اسباب كتير

- اول حاجة ، ممكن ملف الباك اب معطوب أوغير كامل وخاصة لو كان مساحة الموقع كبيرة ، ف ممكن يكون الباك مكتملش

ومن وجهة نظري لما تحب تاخد باك اب لموقع كبير خلى الفولدرات اللى فيها داتا مساحتها كبيرة و مستخدمة مساحة كبيرة خارج الباك اب ، يعني خرجها خارج اليوزر خالص (فى الهوم مثلا /home) وبعدين خد الباك اب بتاعك ، وبعدها رجع داخل اليوزر واضغط الفولدرات دي لوحدها فولدر فولدر ، وبعد ما تنقل الباك للسيرفر اللى عايز تنقله ليه وتسترجع الباك اب ، ادخل فى www من الشيل واسحب الملفات المضغوطة دي (ملفات الفولدرات اللى ضغطناها) وفك ضغطها عادي .

احنا عندنا سيرفر رقم 1 (ودا عليه موقع العميل اللى عايزين ننقله لسيرفر تاني) ، وفيه سيرفر رقم 2 (ودا اللى العميل عايز ينقل ليه)

انت صاحب استضافة وصاحب السيرفر رقم 1 ( والعميل عايز ينقل من عندك ) ، يروح لواحد تاني صاحب استضافة وصاحب سيرفر رقم 2 (والعميل عايز ينقل موقعه عنده) ، وفى كلتا الحالتين العميل موقعه مساحته كبيرة جداً .

علشان انت لا تسوي ضغط على سيرفرك كصاحب سيرفر رقم 1 وانت بتعمل للعميل الباك اب الخاص بموقعه ، وايضاً الاخ الكريم صاحب السيرفر رقم 2 لا يريد ضغط على سيرفره اثناء عملية استرجاع باك اب موقع العميل ، يبقى من الصح ان يكون فيه تنسيق بينكم او لو مفيش مثلاً طريقة اتصال بينكم ، ممكن يقوم العميل بحلقة الوصل دي ، ويوصل المعلومات الخاصة بـ باك اب موقعه من صاحب السيرفر رقم 1 الى صاحب السيرفر رقم 2

يعني مثلا على سبيل المثال عندنا موقع (example.com) اليوزر بتاعه اسمه user و اليوزر دا مستخدم حوالى 6 جيجا او اكتر ، والمساحة دي اغلبها مثلاً ، مثلاً فى المجلد الخاص بمركز التحميل (up) ، الملفات اللى داخل مجلد uploads اللى جوا مركز التحميل دا مستخدمة مساحة كبيرة جدا نقول مثلاً 5 جيجا ، دا غير انه فيه مجلدات لسكربتات تانية و قواعد بيانات على الموقع دا مثلاً هي كمان مساحتها كبيرة ، يعني نلاقي مساحة الموقع دا داخله فى 10 جيجا توتال مثلاً ، طيب يبقى حرام علينا نعمل باك اب للموقع دا من السي بانل او باستخدام الامر :

كود:
/scripts/pkgacct user

أولا : ممكن الباك اب يبقى مش كامل وحصل فيه أخطاء
ثانياً : لود وضغط على السيرفر وهو بيعمل الباك اب دا
ثالثاً : ممكن نيجي نسترجع الباك دا على سيرفر تاني متكتملش العملية دي

يبقى احنا ناخد الملفات اللى مستخدمه مساحة دي خارج المسار بتاع اليوزر دا خالص وبعدين ناخد له الباك اب وبعدين نرجعها تاني ونضغطها لوحدها ، مثلاً ، مجلد uploads داخل مجلد up فى الموقع اللى اليوزر بتاعه user مساحتة كبيرة وعايزين ناخد الباك من غيره ونبقى ننقله بعد ما ناخد الباك ، دا المسار بتاع المجلد دا :

كود:
/home/[COLOR=Red]user[/COLOR]/www/up/uploads

طيب نخرجه بره اليوزر ، نضعه فى الهوم مثلا ، بس الافضل تنشأ فولدر فى الهوم تحط داخله الحاجات دي ، ونسميه مثلا اسم مميز يكون واضح بين مجلدات اليوزرات :

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)

كود:
mkdir /home/USERBACKUP
وبعدها ننقل بقى مجلد uploads للفولدر دا :

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)


كود:
cd /home/[COLOR=Red]user[/COLOR]/www/up
mv uploads /home/USERBACKUP/uploads
ونطبق موضوع النقل دا على الفولدرات اللى مساحتها كبيرة جدا فى الموقع دا بنفس الطريقة ، وبعدها ناخد باك اب للموقع :

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)

كود:
/scripts/pkgacct [COLOR=Red]user[/COLOR]

انتهى الباك اب وصغير ولذيذ ومعملناش لود ولا ضغط على سيرفرنا ، موجود الباك عندنا فى الهوم :

كود:
/home/cpmove-[COLOR=Red]user[/COLOR].tar.gz
طيب هننقل ملف الباك دا جوا الموقع ونديله تصريح علشان نقدر نسحب الملف دا من السيرفر التاني :

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)

كود:
cd /home
chmod 666 cpmove-[COLOR=Red]user[/COLOR].tar.gz
mv cpmove-[COLOR=Red]user[/COLOR].tar.gz /home/[COLOR=Red]user[/COLOR]/www/cpmove-[COLOR=Red]user[/COLOR].tar.gz

اخدنا الباك ونقلناه وجاهز للسحب من سيرفر تاني او للتحميل (احنا نقلناه داخل www لليوزر user واللى الدومين بتاعه example.com ) يبقى لو هنسحب ملف الباك دا من سيرفر تاني هنستخدم الرابط دا :

http://www.example.com/cpmove-user.tar.gz

يعني هناخد الملف من السيرفر التاني ب wget ، ادخل السيرفر التاني اللى هتنقل له الباك دا :

(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)

كود:
cd /home
wget http://www.[COLOR=Red]example.com[/COLOR]/cpmove-[COLOR=Red]user[/COLOR].tar.gz

اعمل استرجاع للباك اب :

(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)

كود:
/scripts/restorepkg [COLOR=Red]user[/COLOR]

كدا خلصنا من الباك للموقع اتاخد واتنقل بقواعد بياناته بكل حاجه ، ما عدا المجلدات اللى طلعناها خارج الموقع (اللى مساحتها كبيرة دي )

ننقل بقى تاني المجلد uploads اللى نقلناه دا للموقع بتاعنا

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)

كود:
cd /home/USERBACKUP
mv uploads /home/[COLOR=Red]user[/COLOR]/www/up/uploads
ونضغط المجلد :

(الامر بيتنفذ على سيرفر رقم 1 اللى عليه الموقع)

كود:
cd /home/[COLOR=Red]user[/COLOR]/www/up
tar -czvf uploads.tar.gz uploads

بقى دلوقتي عندنا المجلد uploads مضغوط داخل مجلد up

كود:
/home/[COLOR=Red]user[/COLOR]/www/up/uploads.tar.gz
أو بطريقة تانية :


http://www.example.com/up/uploads.tar.gz

ادخل السيرفر التاني اللى انت نقلت ليه الباك اب بتاع الموقع وعملت له استرجاع والموقع عايز يكمل بقية ملفاته ، لسه باقي له مجلد بره ، دا اهم مجلد عند العميل ، دا 6 جيجا ، طيب نجيب للعميل بقية موقعه :

(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)

كود:
cd /home/[COLOR=Red]user[/COLOR]/www/up
wget http://www.[COLOR=Red]example.com[/COLOR]/up/uploads.tar.gz
فك ضغط الملف :
(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)

كود:
tar -zxvf uploads.tar.gz
بقى موجود عندنا المجلد uploads خلاص داخل مجلد up على سيرفر 2 ، نحذف بقى الملف المضغوط بتاعه عشان المساحة ، بس بعد ما تتأكد بالفعل من وجود المجلد ومساحته :
(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)


كود:
rm -rf uploads.tar.gz
اظبط التصاريح لليوزر على كافة محتوياته من ملفات ومجلدات :
(الامر بيتنفذ على سيرفر رقم 2 اللى هيتنقل ليه الموقع)

كود:
chmod +s /bin/pwd

/scripts/enablefileprotect

/scripts/chownpublichtmls

/scripts/fixeverything


دا بخصوص اخد نسخة باك اب لموقع كبير ونقله واسترجاعه على السيرفر المنقول اليه ، وبدون اي مشاكل .

-------------------------------------------------------

نيجي بقى لبعض مشاكل استرجاع باك اب لموقع وبعض حلولها :

فيه مشكلة فى استرجاع الباك اب وانت متأكد ان الباك اب اتاخد صح ، لكن كمان عارف ان الباك اب مساحته كبيرة

- ممكن مفيش مساحة على سيرفرك ، بس لو كانت المشكلة من المساحة كان هيظهر لك رسالة خطأ ان disk executed ، فموضوع المساحة دا بسيط واكيد كمان انت عارف المساحة المستخدمة والخالية على سيرفرك .



- حاجة تانية تصريح فك الملفات عندك على السيرفر
كود:
/bin/tar

التصريح الصحيح لها 755 ، وعشان تعرف التصريح مظبوط ولا لأ ،

كود:
cd /bin
كود:
ls -la

وشوف التصريح امام tar المفروض بيكون

كود:
rwxr-xr-x

وهو 755 ، r=4 ، w=2 ، x=1 ، لو عندك التصريح مظبوط ، يعني زي ماهو فى الكود فوق يبقى كدا تمام

كود:
rwx = 4 + 2 + 1 = 7
r-x = 4 + 1 = 5
r-x = 4 + 1 = 5

لو التصريح غير كدا يبقى نفذ الامر دا عشان تديله التصريح 755

كود:
chmod 755 /bin/tar



- ولو سيرفرك vps ممكن ايضاً تكون المشكلة عندك من الميموري انه مش كافى لإتمام عملية استرجاع الباك اب ، وعشان تعرف اذا كانت المشكلة منها او لأ ، قبل ما تعمل استرجاع للباك اب، ادخل الشيل و نفذ الامر :

كود:
cat /proc/user_beancounters

هتلاقي عندك تحت resource حاجه اسمها privvmpages وهي المحدد لك من استهلاك الرام امامها هتركز قبل استرجاع الباك اب على الرقم اللى تحت failcnt هو الطبيعي بتاعه 0 (failcnt دا عدد الوحدات اللى سيرفرك محدد له حاجه معينه من الـ resource وهو تعدي الحاجه دي ، الوحدات اللى تجاوزها او تعداها اثناء عملية ما بتظهر في failctnt وطبعا العملية اللى كان بيعملها وقتها وتعدي الـ limit بتاعه بيتعمل لها kill او قتل ) او لو موجود اي رقم ، فيبقى هو بيتعدى المحدد له من الرام اثناء عمليات على السيرفر ، المهم هتركز عليها قبل استرجاع الباك اب واعرف الرقم كويس ، واعمل استرجاع للباك اب ، ونفذ نفس الامر مرة تانية ، ولو لقيت الرقم الموجود امامprivvmpages تحت خانة failcnt زاد عن ما كان قبل عملية استرجاع الباك اب ، يبقى كدا بيتعدي السموح له من الرام وبيكون استهلك الرام استهلاك كامل والعملية محتاجة لاكتر عشان تكتمل، لو انت صاحب النود الرئيسي تقدر تزود للفي بي اس دا privvmpages

اعرف الـ uid الخاص بالفي بي اس اللى عايز تزود له privvmpagesمن خلال نفس الامر السابق هتلاقي حاجه اسمها uid وتحتها رقم ، الرقم دا هو ال uid الخاص بالفي بي اس ، وليكن مثلا على سبيل المثال 100

هتدخل الشيل للنود الرئيسي ، هديلك اكتر من قيمة تحددها للرام للفي بي اس ( 1024 او 2048)

لو هتحدد له 1 جيجا من الرام (1024 M) وكما ذكرت [على سبيل المثال رقم 100 هو رقم ال uid للفي بي اس ]:

كود:
vzctl set [COLOR=Red]100 [/COLOR]--privvmpages 262144:262144 --save

هتحدد له 2 جيجا (2048 M ) :

كود:
vzctl set [COLOR=Red]100 [/COLOR]--privvmpages 524288:524288 --save

بعدها ريستارت للفي بي اس​


كود:
vzctl restart [COLOR=Red]100[/COLOR]


- حاجه تانية خالص ، انك تسترجع الباك اب يدوي

نقول مثلا ان الباك اب اسمه cpmove-user.tar.gz وموجود على السيرفر فى الهوم

كود:
/home/cpmove-[COLOR=Red]user[/COLOR].tar.gz

من الافضل انك تكريت له فولدر وتضعه بداخله ، يعني مثلا :

كود:
mkdir /home/aabbcc
انقل ملف الباك اب للفولدر اللى كريته فى الهوم :

كود:
mv /home/cpmove-[COLOR=Red]user[/COLOR].tar.gz /home/aabbcc/cpmove-[COLOR=Red]user[/COLOR].tar.gz
بعد كدا هتدخل للفولدر عشان تبدأ تفك ملف الباك اب :

كود:
cd /home/aabbcc
هتبدأ فك ضغط الملف :

كود:
tar -zxvf cpmove-[COLOR=Red]user[/COLOR].tar.gz
بعد ما ينتهي ادخل الفولدر اللى اتفك :

كود:
cd cpmove-[COLOR=Red]user[/COLOR]
لو عملت استعراض للملفات المجلدات بداخله من خلال الامر ls ، هتلاقي ملف بإسم homedir.tar ، هتفك ضغط الملف :

كود:
tar -xvf homedir.tar
طبعا عملية فك الملف سواء الاخيرة او اللى قبلها ممكن تاخد وقت كبير على حسب مساحة الباك اب دا .

بعد ما ينتهي اعمل استعراض للملفات الموجودة من خلال الامر ls .

كدا بقى عندك اهم حاجتين عايزينهم فى الباك اب دا :

- الداتا الموجودة الخاصة بالموقع ، ودي موجودة فى مجلد www

- قواعد البيانات الخاصة بالموقع ، ودي موجودة فى مجلد mysql

- طيب احنا كدا الداتا موجودة والقواعد ، لكن ازاي هنركبها >> بسيطة ، هتكريت اكونت جديد على سيرفرك ويكون اليوزر بتاعه نفس اسم اليوزر الخاص بالموقع اللى فكيت الباك اب بتاعه (عشان حاجه واحدة بس ، لو الموقع عليه سكربتات كتير متعدلش فى كونفيج كل سكربت من اليوزر الموجود فى الملف لليوزر الجديد) ، يعني الافضل انك تنشأ اكونت بنفس اليوزر ، وطبعا احنا المثال بتاعنا هنا اليوزر اسمه user ، يعني كدا بعد انشاء الاكونت هيكون مساره كدا :

كود:
/home/[COLOR=Red]user[/COLOR]


كويس جدا ، هنبدأ بنقل الداتا لليوزر اللى انشأناه ، هتدخل على مجلد www او public_html (الاتنين نفس محتوياتهم واحده) :

كود:
cd www
جوا المجلد دا كل الملفات الخاصة بالموقع وتقدر تتأكد من وجودها من خلال الامر ls ، هنبدأ ننقلها للاكونت اللى كريتناه على السيرفر :

كود:
mv * /home/[COLOR=Red]user[/COLOR]/www/


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

دي اللى ممكن تاخد منك وقت فعلاً لو الباك دا فيه قواعد كتيرة او بمعني تاني عنده سكربتات كتيرة شغالة باستخدام قواعد بيانات ، المهم نيجي لتركيب القواعد دي ، احنا دلوقتي جوا فولدر www ، اللى هو دا :

كود:
/home/aabbcc/cpmove-user/www

هنرجع خطوة للخلف عشان ندخل على فولدر mysql اللى فيه القواعد :

كود:
cd ..
cd mysql

تقدر تشوف القواعد الموجودة فى الباك اب دا بعد دخولك لمجلد mysql من خلال امر :

كود:
ls
هتظهر لك بعدها كل قواعد البيانات واللى بتبدأ بإسم اليوزر :

كود:
[COLOR=Red]user[/COLOR]_

و بتنتهي بـ .sql

ونقول مثلا انك لقيت القواعد دي اللى موجودة

كود:
user_games.sql      user_up.sql       user_video.sql
user_mob.sql        user_vb.sql

دا مثلا يعني ممكن ما تلاقيش غير قاعدة واحدة او اتنين او تلاته وممكن تلاقي اللى تلاقيه هو كان صاحب الموقع مركب سكربتات كتير ملناش دعوه

طيب عشان لو القواعد دي كتير ومنعدلش فى ملف كونفيج كل سكربت ، من الافضل انك تدخل السي بانل للاكونت اللى انت كريته على السيرفر وتدخل على www وتدخل على مجلد كل سكربت وتشوف القاعدة دي كانت شغاله ببيانات ايه على اليوزر دا قبل كدا ، طبعا مش هتدخل بالدومين (ممكن يكون لسه متفعلش) ، هتدخل بـ أي بي سيرفرك :


استبدل ip بـ أي بي سيرفرك ، هيطلب منك اليوزر والباس ، هتدخل له بيانات اليوزر اللى انت أنشأته على السيرفر واللى هو فى مثالنا هنا user والباسورد اللى عملته لليوزر دا .

بعدها هتدخل على ادارة الملفات او File Manager ، وتدخل www ، ونشوف اللى قلنا عليه ، مثلا سكربت من ضمن السكربت هو vb ، ندخل نشوف فى الكونفيج بتاعه هو كان بيانات القاعدة بتاعته ايه ، ودي الحاجات اللى محتاجينها (اسم القاعدة ، واليوزر الخاص بالقاعدة دي ، وباسورد اليوزر دا) :

كود:
Database name
Database user
User password

تمام عرفنا بيانات القاعدة ، ولتكن مثلا على سبيل المثال :

كود:
Database name = [COLOR=Red]user[/COLOR]_vb
Database user = [COLOR=Red]user[/COLOR]_vb
User password = vb
يبقى دلوقتي واحنا فى السي بانل وعرفنا القاعدة كانت بياناتها ايه ، هندخل على My SQL Databases عشان ننشأ قاعدة ويوزر وباسورد بنفس البيانات اللى عرفناها من ملف الكونفيج دي ، وطبعا هنعطي لليوزر كافة الصلاحيات على القاعدة ، يعني هنكريت قاعدة (vb) ونكريت يوزر (vb) وباسورد اليوزر (vb) ونربط اليوزر مع القاعدة add user to data base مع اعطاء اليوزر كافة الصلاحيات على القاعدة دي all privileges

كويس اوي ، نيجي بقى لتركيب القاعدة ، ما ننساش ان احنا فى الشيل جوا فولدر mysql اللى فيه القواعد ولازم عشان تنفذ الاوامر اللى جايه دي انك تكون جوا الفولدر اللى فيه القواعد دا عشان مسار ملف القاعدة اللى فى الامر اللى هنفذه عشان يركب لنا القاعدة دي ، من خلال الامر دا :

كود:
mysql -u [COLOR=Red]user_vb[/COLOR] -p[COLOR=DarkOrchid]vb[/COLOR] [COLOR=RoyalBlue]user_vb[/COLOR] < [COLOR=Red]user_vb.sql[/COLOR]

- user_vb = دا اسم يوزر القاعدة اللى أنشأناه من السي بانل
- vb = دا باسورد اليوزر دا
- user_vb = دا اسم القاعدة اللى أنشأناها من السي بانل
- user_vb.sql = دا ملف القاعدة الموجود فى فولدر mysql واللى نفذنا امر زرعه على القاعدة الموضح بياناتها .

وهتنفذ الخطوات اللى فاتت دي اللى هي من اول الخطوة :

ونقول مثلا انك لقيت القواعد دي اللى موجودة
لحد اخر خطوة عملناها واللى هي تنفيذ امر زراعة ملف القاعدة على القاعدة اللى أنشأناها

الخطوات دي هنفذها على كل القواعد الموجودة واللى زي ما قلنا بتبدأ باسم اليوزر وبتنتهي بـ .sql

بعد كدا مننساش نعطي للاكونت اللى انشأناه التصاريح على الملفات ، من خلال تنفيذ الاوامر التالية ستقوم بعمل ضبط للتصاريح :

كود:
chmod +s /bin/pwd

/scripts/enablefileprotect

/scripts/chownpublichtmls

/scripts/fixeverything
اسف لو أطلت فى الموضوع ولكن حبيت اوضح اكتر من شئ فى الموضوع اللى يتعلق بالباك اب

تحياتي للجميع ، واي استفسار او طلب موجودين .
 
  • Like
التفاعلات: ENG MUHAMED

ENG MUHAMED

[ADMIN]
طاقم الإدارة
25 فبراير 2008
10,079
43
48
support-ar.net
وعليكم السلام

موضوع مهم مع ان ناس كتير تحب تريح نفسها وتنفذ الامر
طبعا لو الموقع كبير زى ما قولت هيبقى فيه ضغط غير طبيعى وممكن يوقف السيرفر كامل 💘

ماشاء الله كفيت ووفيت للجزئيه كامله بارك الله فيك
 

Gulfhosted.com

عضو جديد
20 يوليو 2009
18
2
0
وعليكم السلام

موضوع مهم مع ان ناس كتير تحب تريح نفسها وتنفذ الامر
طبعا لو الموقع كبير زى ما قولت هيبقى فيه ضغط غير طبيعى وممكن يوقف السيرفر كامل 💘

ماشاء الله كفيت ووفيت للجزئيه كامله بارك الله فيك


مشكور عزيزي على مرورك

بالنسبة للى بيحب يريح نفسه وينفذ الامر ممكن جداً الباك اب ميكتملش معاه و يتعمل له kill اثناء عملية الباك اب لو تعدى المحدد له كما هو موضح فى الجزئية الخاصة بالـ resource وتعديها

ماهو انا ذكرت انه ممكن تعدي المحدد لك من موارد ورام اثناء فك الباك اب وان مشلكة عدم استرجاع الباك اب ممكن يكون دا سبب ليها

لكن طبعا الموضوع دا بيطبق على الكل مش على عملية اخذ باك اب او استرجاع باك ، انت عندك على السيرفر عملية جعلت السيرفر استهلك الموارد الخاصة بيه ، طبيعي كدا هيبقى العملية هتقف ومش هتكمل وهيكون عندك failcnt .

مشكور اخي مرة تانية لنقاشك بالموضوع

مع تحياتي

سامح الشورى .