الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تنفيذ كود تلقائياً بوقت محدد أو دورياً cronjob

بدأه ahmedsaoud31 في 3 يوليو 2014 · 1 رد · 1,294 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

يوجد عدة أسئلة في المنتدى تسأل عن تنفيذ كود معين دون تدخل من المستخدم أو زيارة الصفحة من خلال المتصفح فتوجد مهمة في أنظمة Linux تسمى بـ cronjob تقوم بجدولة المهام المراد تنفيذها بعد زمن معين أو بشكل دوري ويكون الشكل العام لها كالتالي :

* [0-59] Minute
|    * [0-23] Hour
|    |    * [1-31] Day
|    |    |    * [1-12] Month
|    |    |    |    * [0-7] Day Of Week
|    |    |    |    |
*    *    *    *    *    Command line to execute

أول خانة للدقائق والتي تليها للساعات والتي تليها للأيام والتي تليها للشهور والتي تليها لأيام الأسبوع ثم مسار الملف الموجود به الكود المراد تنفيذه .

 

على سبيل المثال نريد تنفيذ كود الساعة 9.30 يوم 1 يناير من كل عام يكون الود كالتالي :

30 9 1 1 * /path/to/yourFile

أو تنفيذ كود كل 2 دقيقة يكون الكود كالتالي :

*/2 * * * * /path/to/yourFile

- بغيير القيمة 2 يتم تغيير قيمة الدقائق التي سيتم تنفيذ الكود بشكل دوري بعدها

 

أو تنفيذ كود كل يوم كالتالي:

0 0 * * * /path/to/yourFile

أو تنفيذ الكود كل 3 أيام كالتالي:

0 0 */3 * * /path/to/yourFile

أو تنفيذ كود بساعات محددة في اليوم كالتالي:

0 3,6,18 * * * /path/to/yourFile

أو تنفيذ كود كل شهر كالتالي:

0 0 1 * * /path/to/yourFile

أو تنفيذ كود بشهور معينة كالتالي:

0 0 1,5,11 * * /path/to/yourFile

أو تنفيذ كود كل عام:

0 0 1 1 * /path/to/yourFile

أو تنفيذ كود كل يوم سبت من كل أسبوع كالتالي:

0 0 * * 0 /path/to/yourFile

وهذا كيفما تشاء

 

يمكن عمل الـ cronjob من خلال الـ cPanel الخاصة بالإسضافة أو إستخدام الكود التالي من خلال لغة PHP لعمل الـ cronjob كالتالي:

<?php
$dir = __DIR__ .'/run.php';
$cronjobs = shell_exec('crontab -l');
$newCronjob = "*/2 * * * * /usr/bin/php -q $dir";
file_put_contents('/tmp/crontab.txt', $cronjobs.$newCronjob.PHP_EOL);
echo exec('crontab /tmp/crontab.txt');
?>

- طبعاً المتغير $dir هو مسار الملف المراد تنفيذه .

- وداخل المتغير $newCronjob يمكن تغيير توقيت التنفيذ كما تم شرحه في الأعلى .

 

كنت أود تنفيذ تطبيق بواجهة مستخدم لعمل الـ cronjob بسهولة من خلال واجهة رسومية دون الحاجة لمعرفة التفاصيل الخاصة بالـ cronjob ولكن لا يسعني الوقت لفعل هذا حالياً , في وقت لاحق بإذن الله تعالى .

 

ملاحظة :

- يجب أن تكون على نظام Linux ليعمل معك التطبيق أو تنفيذه مباشراً على إستضافة بنظام Linux .

تم تعديل هذه المشاركة بواسطة ahmedsaoud31 في 3 يوليو 2014 في 14:10

4

لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق

لا إله إلا أنت سبحانك إني كنت من الظالمين

مواضيع مشابهة