سوف أشرح لكم إن شاء الله كيفية إستقبال قاعدة بيانات جملة! وتستطيع أيضا إستخدامه لكافة قواعد أخرى -لو أحببت- عبر بريدك بدون اللجوء لتركيب تطبيقات إضافية
الفكرة كلها تتمحور حول تطبيقين
- الأول: تطبيق PHP الذي يقوم بالنسخة الإحتياطية + إرسالها عبر بريدك الإلكتروني
- الثاني: برنامج crontab وهو متوفر في أغلب لوحات التحكم للمضيف
لن أدخل في تفاصيل كثيرة عن crontab لكن ببساطة تستطيع القول بأنه يقوم بتوقيت الأوامر scheduling التي تجرى
ببساطة أكثر، في حالتنا هذه، سوف نخبره أن يقوم بتشغيل تطبيق البي إتش بي في ميقات معلوم
والخطوات كالتالي إن شاء الرحمن
أولا: خطوة ما قبل التنصيب والشرح معتمدا على إضافة FireFTP التي أخبرتكم عنها سابقا http://forum.joomla.org/index.php/topic,200112.0.html
سوف نقوم بإنشاء مجلد خارج مجلد الويب وفي هذا ضمانا أمنيا بعدم إقتحام أية متسللين إليك ولا تقلق من تصريح البوينج هذا 777 يعني مادام المجلد خارج مجلد الويب br>

ثانيا: إنشاء مستخدم للولوج لقاعدة البيانات كل تطبيق يعتمد علي PHP يقوم بإنشاء قاعدة بيانات خاصه به ويكون لها
- مستخدم or dbuser
- كلمة مرور or dbpass
- القاعدة نفسها or dbname
وفي العادة يكون هذا المستخدم له كافة الصلاحيات Privileges: ALL PRIVILEGES القاعدة للتعامل مع
المهم، سوف تقوم حضرتك بإنشاء مستخدم جديد كالتالي: أ- دخل على لوحة التحكم الخاصة بمزوك وفي هذا المثال هي CPanel ب - Advanced ==> MySQL Manager ج - Users ===> Username, Passworrd: أدخل إسم جديد لمستخدم + كلمة مرور وإحفظهما ثم Add د - من Assign Permissions: سوف تقوم بإختيار إسم المستخدم الجديد ثم تختار إسم قاعدة البيانات ثم Submit
من المفصل إعطاء التصاريح لهذا المستخدم لكل قواعد البيانات لديك إذ رغبت في إرسالها إلي يريدك
وهكذا يكون مستخدمنا جاهزا للتعامل مع السكريبت
ثالثا: السكريبت يوجد العديد منها علي الشبكة لكن فإخترت لكم إحداها قمت بإستخدام سكريبت مجاني برخصة GNU/GPL من موقع PHPFreaks أ- تستطيع تحميله من رابط مطوره أو من خلال المرفقات في هذه الرسالة http://www.phpfreaks.com/script/view/11.php
ب - فك ضغط الملف وإفتح ملف dbsender.php وهو التطبيق بأحد البرامج مثل نوتباد بلس
ج - إذهب للسطر رقم 32 وفيه أدخل القيم التي قمت بإنشائها سابقا لا تنس أن تضغها بين الأقواس كما هي في الكود مثال: $dbname = 'catsworld_joomla ' $dbhost = 'localhost'; // لا تستبدله، فعاده هذه هي القيمة الصحيحة $dbuser = 'your_username'; // أدخل اسم المستخدم الذي أنشأناه في الخطوة السابقة $dbpass = 'yourpass'; // أدخل كلمة السر للمستخدم الذي أنشأناه في الخطوة السابق $dbname = 'database_name'; // أدخل اسم قاعدة البيانات المراد الحصول عليها د - لا تقم بتغيير قيم الأسطر رقم 39، 40 ، 41 اللهم إلا إذ أحببت ذلك
$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 هام لتحديد مسار النسخة + السكريبت
$savepath = "/www/htdocs/dbsender"; // قم بتغيير هذه القيمة إلي المسار الذي أنشأناه في الخطوة الأولي مثلا: "home/user/backup"
هــ - السطر 47 هام لتحديد مسار النسخة + السكريبت
$send_email = "yes"; // دعها كما هي مادمت تريد إستقبال نسخة علي بريدك $to = "
هذا البريد محمى من المتطفلين , تحتاج إلى تشغيل الجافا سكريبت لمشاهدته
"; // البريد الذي سوف تستقبل عليه النسخة، لابد وأن يكون حقيقيا + سعة مناسبة (أفضل gmail $from = "
هذا البريد محمى من المتطفلين , تحتاج إلى تشغيل الجافا سكريبت لمشاهدته
"; // بريد الراسل، يعني لمعرفة من أرسل إليك
و - السطر 53 هام لتحديد موضوع الرسالة + نصها
$subject = "MySQL Database Backup - $senddate"; // غير ما قبل المتغير -$ إذا احببت تغيير عنوان الرسالة $message = "Your MySQL database has been backed up and is attached to this email"; // نص الرسالة، غريه إن شئت لكن إجعله قصيرا
ز - لا تقم بتغيير أية قيم أخرى إلا إذا كنت مستخدما متقدما Advanced user
رابعا: حفظ + رفع السكريبت للسيرفر أ - قم برفع الملف إلي المجلد الذي أنشانأه في الخطوة الأولي وهو نفس المسار المكتوب في سطر 45 ب - أعط الملف تصريح 711 وتأكد أن المجلد ككل له تصريح 777 (تصريح البوينج كما لابد وعرفتم) ملحوظة هامة:يتعامل هذا السكريبت مع قاعدة بيانات واحدة فقط، فلو كنت تريد أن يرسل لك كل قواعد البياتات، قم بالتالي أ - قم بعمل نسخ من هذا الملف مساوية لعدد قواعد بياناتك وأعط كل منها إسم مميز أو رقم مثلا ب - غير قيمة $dbname في سطر 35 إلي إسم قاعدة البيانات التي تريد الحصول عليها ج - قم برفع هذه الملفات إلي المجلد السابق ذكره مع إعطائها تصريح 711 وهنا يتضح فائدة وجود مستخدم واحد لكل قواعد البيانات خامسا: 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 للحصول علي قاعدة بيانات حملة إذا يكون أمر كرونتاب كالتالي 30 12 * * 5 php /home/catswrld/backup/dbsndjm.php > /dev/null
إذا كان لديك سكريبت أخر بإسم dbsndwp.php وهو خاص بورد بريس أن يقوم بتشغيل السكريبت كل يوم ثلاثاء الساعة 7:15 مساء للحصول علي قاعدة بيانات إذا يكون أمر كرونتاب كالتالي
15 19 * * 2 php /home/catswrld/backup/dbsndwp.php > /dev/null وهكذا سابعا: راجع بريدك الإلكترونيYou've got mail  من خلال القيم التي أدختها في أسطر 48، 49، 53، 54 سوف تتعرف علي رسالة البرنامج وبها مرفقات في صورة .tar.gz ويوجد على الشبكة الكثير من التطبيقات الأخرى سكريبتات تسنطيع إستخدامها بهذه الطريقة أسال الله أن يكون هذا مفيدا لكم إضافة أولي: التجربة للتأكد من عمل السكريبت جيدا، تسستطيع أن تخبر crontab بأن يرسل لك النسخة الإحتياطية كل خمس دقائق أو عشر دقائق مثلا وإذا ما إطمأننت أن الموضوع سلس، غير قيمة crontab لتكون في الوقت الذي تحدده
توقيت كل عشر دقائق في المثال المفترض يكون كالتالي
10 * * * * php /home/catswrld/backup/dbsndwp.php > /dev/null
إضافة ثانية: التوقيت يعتمد crontab علي توقيت السيرفر يعني server time
يعني المثال السابق ذكره:
30 12 * * 5 php /home/catswrld/backup/dbsndjm.php > /dev/null هذا يعني يوم أن الكرون سوف يعمل كل جمعة الساعة 12:30 ظهرا بتوقيت السيرفر
ففضلا راع إختلاف التوقيت بين بلدك وبين بلد مزود الخدمة ولا تجزع إذ لم يصل إليك البريد بتوقيتك
أضف الى المفضلة (6) | أضف الى موقعك | المشاهدة: 48 | ارسال لصديق
|
- من فضلك اضف تعليق يتناسب مع الخبر.
- أي اهانات أو شتم سيتم حذفها.
- لا تنس اضافة الكود الأمني الموجود بالأسفل.
|
|