Page 1 of 1

شرح: استقبل القاعدة على بريدك

Posted: Mon Aug 13, 2007 10:09 pm
by HH
السلام عليكم ورحمة اللة

شرحت لكم سابقا إضافة لعمل نسخة إحتياطية كاملة من الموقع + القاعدة
http://forum.joomla.org/index.php/topic,200566.0.html

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

الفكرة كلها تتمحور حول تطبيقين
  • الأول: تطبيق PHP الذي يقوم بالنسخة الإحتياطية + إرسالها عبر بريدك الإلكتروني
  • الثاني: برنامج crontab وهو متوفر في أغلب لوحات التحكم للمضيف
لن أدخل في تفاصيل كثيرة عن crontab لكن ببساطة تستطيع القول بأنه يقوم بتوقيت الأوامر scheduling التي تجرى

ببساطة أكثر، في حالتنا هذه، سوف نخبره أن يقوم بتشغيل تطبيق البي إتش بي في ميقات معلوم

والخطوات كالتالي إن شاء الرحمن

يتبع ...

Re: شرح: استقبل القاعدة على بريدك

Posted: Mon Aug 13, 2007 10:48 pm
by HH
أولا: خطوة ما قبل التنصيب
والشرح معتمدا على إضافة FireFTP التي أخبرتكم عنها سابقا
http://forum.joomla.org/index.php/topic,200112.0.html


سوف نقوم بإنشاء مجلد خارج مجلد الويب وفي هذا ضمانا أمنيا بعدم إقتحام أية متسللين إليك
ولا تقلق من تصريح البوينج هذا 777 يعني مادام المجلد خارج مجلد الويب
:)

Image



ثانيا: إنشاء مستخدم للولوج لقاعدة البيانات
كل تطبيق يعتمد علي PHP يقوم بإنشاء قاعدة بيانات خاصه به ويكون لها
  • مستخدم or dbuser
  • كلمة مرور or dbpass
  • القاعدة نفسها or dbname
وفي العادة يكون هذا المستخدم له كافة الصلاحيات Privileges: ALL PRIVILEGES القاعدة للتعامل مع

المهم، سوف تقوم حضرتك بإنشاء مستخدم جديد كالتالي:
أ- دخل على لوحة التحكم الخاصة بمزوك وفي هذا المثال هي CPanel
ب - Advanced ==> MySQL Manager
ج - Users ===> Username, Passworrd: أدخل إسم جديد لمستخدم + كلمة مرور وإحفظهما ثم Add
د - من Assign Permissions: سوف تقوم بإختيار إسم المستخدم الجديد ثم تختار إسم قاعدة البيانات ثم Submit

من المفصل إعطاء التصاريح لهذا المستخدم لكل قواعد البيانات لديك إذ رغبت في إرسالها إلي يريدك

وهكذا يكون مستخدمنا جاهزا للتعامل مع السكريبت
يتبع ...

Re: شرح: استقبل القاعدة على بريدك

Posted: Mon Aug 13, 2007 11:13 pm
by HH
ثالثا: السكريبت
يوجد العديد منها علي الشبكة لكن فإخترت لكم إحداها
قمت بإستخدام سكريبت مجاني برخصة GNU/GPL من موقع PHPFreaks

أ-  تستطيع تحميله من رابط مطوره أو من خلال المرفقات في هذه الرسالة
http://www.phpfreaks.com/script/view/11.php



ب - فك ضغط الملف وإفتح ملف dbsender.php وهو التطبيق بأحد البرامج مثل نوتباد بلس



ج - إذهب للسطر رقم 32 وفيه أدخل القيم التي قمت بإنشائها سابقا
لا تنس أن تضغها بين الأقواس كما هي في الكود
مثال: $dbname = 'catsworld_joomla'

Code: Select all

$dbhost = 'localhost'; // لا تستبدله، فعاده هذه هي القيمة الصحيحة
$dbuser = 'your_username'; // أدخل اسم المستخدم الذي أنشأناه في الخطوة السابقة
$dbpass = 'yourpass'; // أدخل كلمة السر للمستخدم الذي أنشأناه في الخطوة السابق
$dbname = 'database_name'; // أدخل اسم قاعدة البيانات المراد الحصول عليها

د - لا تقم بتغيير قيم الأسطر رقم 39، 40 ، 41 اللهم إلا إذ أحببت ذلك

Code: Select all

$use_gzip = "yes";  // Set to No if you don't want the files sent in .gz format
$remove_sql_file = "yes"; // Set this to yes if you want to remove the .sql file after gzipping. Yes is recommended.
$remove_gzip_file = "no"; // Set this to yes if you want to delete the gzip file also. I recommend leaving it to "no"


هــ - السطر 45 هام لتحديد  مسار النسخة + السكريبت

Code: Select all

$savepath = "/www/htdocs/dbsender"; // قم بتغيير هذه القيمة إلي المسار الذي أنشأناه في الخطوة الأولي
مثلا: "home/user/backup"



هــ - السطر 47 هام لتحديد  مسار النسخة + السكريبت

Code: Select all

$send_email = "yes";  // دعها كما هي مادمت تريد إستقبال نسخة علي بريدك
$to      = "you@yourdomain.com";  // البريد الذي سوف تستقبل عليه النسخة، لابد وأن يكون حقيقيا + سعة مناسبة (أفضل gmail
$from    = "r00t@yourdomain.com"; // بريد الراسل، يعني لمعرفة من أرسل إليك


و - السطر 53 هام لتحديد موضوع الرسالة + نصها

Code: Select all

$subject = "MySQL Database Backup - $senddate"; // غير ما قبل المتغير -$ إذا احببت تغيير عنوان الرسالة
$message = "Your MySQL database has been backed up and is attached to this email"; // نص الرسالة، غريه إن شئت لكن إجعله قصيرا


ز - لا تقم بتغيير أية قيم أخرى إلا إذا كنت مستخدما متقدما Advanced user

يتبع ...

Re: شرح: استقبل القاعدة على بريدك

Posted: Mon Aug 13, 2007 11:23 pm
by HH
رابعا: حفظ + رفع السكريبت للسيرفر

أ - قم برفع الملف إلي المجلد الذي أنشانأه في الخطوة الأولي وهو نفس المسار المكتوب في سطر 45

ب - أعط الملف تصريح 711 وتأكد أن المجلد ككل له تصريح 777
(تصريح البوينج كما لابد وعرفتم)
:)

ملحوظة هامة:
يتعامل هذا السكريبت مع قاعدة بيانات واحدة فقط، فلو كنت تريد أن يرسل لك كل قواعد البياتات، قم بالتالي
أ - قم بعمل نسخ من هذا الملف مساوية لعدد قواعد بياناتك وأعط كل منها إسم  مميز أو رقم مثلا

ب - غير قيمة $dbname في سطر 35 إلي إسم قاعدة البيانات التي تريد الحصول عليها

ج - قم برفع هذه الملفات إلي المجلد السابق ذكره مع إعطائها تصريح 711

وهنا يتضح فائدة وجود مستخدم واحد لكل قواعد البيانات

يتبع ...

Re: شرح: استقبل القاعدة على بريدك

Posted: Mon Aug 13, 2007 11:52 pm
by HH
خامسا: crontab وخلفية مبسطة

لفهم كيفية عمل crontab, فضلا راجعوا مقالة ويكيبيدا
http://en.wikipedia.org/wiki/Crontab

ببساطة نحن إتفقنا علي أنه برنامج لتنفيذ أمر ما في وقت معلوم لذا فالأمر ببساطة فأمر كرونتاب كالنالي

min hour day month weekday command
*    *    *    *          *        أمر كرونتاب
بحيث
  • minute (0 - 59)
  • hour (0 - 23)
  • day of month (1 - 31)
  • month (1 - 12)
  • day of week (0 - 7) (Sunday=0 or 7)
يعنني إختيارك للقيم هو الذي يحدد ميعاد البرنامج

تابعوا الشرح وسوف تجدوا الموضوع سهل إن شاء الله



سادسا: إستخدام كروناب crontab لإستقبال النسخة

أ - إدخل على لوحة التحكم CPanel الخاصة بمزودك

ب - Site Management ===> Crontab ==> Advanced (Unix Style)

ج - أدخل البريد الذي تود إستقبال عليه نتائج الأمر في حالة حدوث خطأ، وهذا لا علاقه له بالسكريبت

بالمثال يتضح المقال
  • بإفتراض أن المستخدم هو catswrld
  • وأن الإسكريبت الذي قمنا بإعداه بعد إدخال القيم وتغيير التصاريح هو dbsndjm.php
  • وأن المسار هو /backup
نريد من crontab أن يقوم بتشغيل السكريبت كل يوم الجمعة الساعة 12:30 للحصول علي قاعدة بيانات حملة

إذا يكون أمر كرونتاب كالتالي

Code: Select all

30 12 * * 5 php /home/catswrld/backup/dbsndjm.php > /dev/null


إذا كان لديك سكريبت أخر بإسم dbsndwp.php وهو خاص بورد بريس
أن يقوم بتشغيل السكريبت كل يوم ثلاثاء الساعة 7:15 مساء للحصول علي قاعدة بيانات
إذا يكون أمر كرونتاب كالتالي

Code: Select all

15 19 * * 2 php /home/catswrld/backup/dbsndwp.php > /dev/null
وهكذا




سابعا: راجع بريدك الإلكتروني
You've got mail :)

من خلال القيم التي أدختها في أسطر  48، 49، 53، 54
سوف تتعرف علي رسالة البرنامج وبها مرفقات في صورة .tar.gz


ويوجد على الشبكة الكثير من التطبيقات الأخرى سكريبتات تسنطيع إستخدامها بهذه الطريقة

أسال الله أن يكون هذا مفيدا لكم
ولا تنسونا من صالح دعائكم

Re: شرح: استقبل القاعدة على بريدك

Posted: Tue Aug 14, 2007 5:26 pm
by HH
إضافة أولي: التجربة
للتأكد من عمل السكريبت جيدا، تسستطيع أن تخبر crontab بأن يرسل لك النسخة الإحتياطية كل خمس دقائق أو عشر دقائق مثلا
وإذا ما إطمأننت أن الموضوع سلس، غير قيمة crontab لتكون في الوقت الذي تحدده

توقيت كل عشر دقائق في المثال المفترض يكون كالتالي

Code: Select all

10 * * * * php /home/catswrld/backup/dbsndwp.php > /dev/null

إضافة ثانية: التوقيت
يعتمد crontab علي توقيت السيرفر يعني server time

يعني المثال السابق ذكره:

Code: Select all

30 12 * * 5 php /home/catswrld/backup/dbsndjm.php > /dev/null
هذا يعني يوم أن الكرون سوف يعمل كل جمعة الساعة 12:30 ظهرا بتوقيت السيرفر

ففضلا راع إختلاف التوقيت بين بلدك وبين بلد مزود الخدمة ولا تجزع إذ لم يصل إليك البريد بتوقيتك

Re: شرح: استقبل القاعدة على بريدك

Posted: Wed Aug 15, 2007 7:41 am
by emakki
أحسنت بارك الله فيك... استمر وفقك الله

تم التثبيت للفائدة

Re: شرح: استقبل القاعدة على بريدك

Posted: Thu Aug 16, 2007 7:31 am
by Specialist
شرح رائع ومعلومات كنت في أمس الحاجة إليها

شكراً أيها المتألق
وشكراً على تثبيت الموضوع

Re: شرح: استقبل القاعدة على بريدك

Posted: Thu Aug 16, 2007 9:53 pm
by HH
بارك الله فيكم،

قمت الحمد لله بتعديل المشاركة الأخيرة -الخامسة- لتوضيح معلومة هامة وهي خاصة بميعاد الكرون

Re: شرح: استقبل القاعدة على بريدك

Posted: Fri Aug 17, 2007 10:59 pm
by ZERIAB
شرح رائع اخي الكريم ,, بارك الله بك ,,  :laugh:

و شكرا لكم على تثبيت الموضوع

تحياتي

Re: شرح: استقبل القاعدة على بريدك

Posted: Sun Dec 23, 2007 11:48 pm
by LibyanYoung
تبارك الرحمن

Re: شرح: استقبل القاعدة على بريدك

Posted: Fri Jan 25, 2008 2:08 pm
by majik
معلومات مفيدة جداً، ما قصرت
بارك الله فيك

Re: شرح: استقبل القاعدة على بريدك

Posted: Sat Feb 09, 2008 6:27 pm
by I-MAG
جزاك الله كل خير. كنت أبحث عن طريقة مثل هذه منذ فترة.
المشكلة الوحيدة هي في joomlapack إذ أن القاعدة المصدرة تكون بمحارف غريبة للأسف.

Re: شرح: استقبل القاعدة على بريدك

Posted: Tue Nov 18, 2008 10:22 am
by tiger-1
الف شكر لك وجاري التجريب