OneKitTools logoOneKitTools
developer4 دقائق للقراءة

"تعبيرات Cron شرح كامل: من الأساسيات إلى الجداول المتقدمة"

ما هو تعبير Cron؟ تعلّم الصياغة والحقول والأحرف الخاصة — مع أمثلة عملية للجداول الشائعة مثل "كل يوم عند منتصف الليل" أو "كل اثنين الساعة 9 صباحاً".

OneKitTools Team14 أبريل 2026

ما هو تعبير Cron؟

Cron هو مُجدول مهام مبني على الوقت في أنظمة Unix/Linux. تعبير Cron هو الصياغة التي تخبر cron متى ينفذ مهمة.

لقد رأيتها من قبل: 0 0 * * *. تعني "عند منتصف الليل، كل يوم." لكن بمجرد تجاوز الأساسيات، تصبح صياغة cron معقدة بسرعة — 5 حقول، ثوانٍ اختيارية، اختلافات بين المنصات، وأحرف خاصة يقوم معظم الناس بنسخها دون فهم.

هذا الدليل يوضح كل شيء.

الحقول الـ5 (أو 6)

يستخدم Cron القياسي 5 حقول مفصولة بمسافات:

┌──────────── الدقيقة (0–59) │ ┌────────── الساعة (0–23) │ │ ┌──────── يوم الشهر (1–31) │ │ │ ┌────── الشهر (1–12) │ │ │ │ ┌──── يوم الأسبوع (0–7, 0 و7 = الأحد) │ │ │ │ │ * * * * *

بعض الأنظمة (AWS EventBridge، Spring، Quartz) تضيف حقل الثواني في البداية، مما يجعله 6 حقول. تحقق من منصتك.

الأحرف الخاصة

الحرفالمعنىمثال
*كل القيم* * * * * = كل دقيقة
,قيم متعددة0 9,17 * * * = 9 صباحاً و5 مساءً
-نطاق0 9-17 * * * = كل ساعة من 9 إلى 17
/خطوة*/15 * * * * = كل 15 دقيقة
Lالأخير0 0 L * * = آخر يوم في الشهر (Quartz فقط)
?بدون قيمة0 0 ? * MON = أيام الاثنين، أي يوم من الشهر (Quartz)

تعبيرات Cron الشائعة

كل دقيقة

* * * * *

كل 5 دقائق

*/5 * * * *

كل ساعة، في الدقيقة صفر

0 * * * *

كل يوم عند منتصف الليل

0 0 * * *

كل يوم الساعة 9 صباحاً

0 9 * * *

كل اثنين الساعة 9 صباحاً

0 9 * * 1

كل يوم عمل (اثنين–جمعة) الساعة 8 صباحاً

0 8 * * 1-5

كل نهاية أسبوع عند الظهر

0 12 * * 0,6

أول يوم من كل شهر عند منتصف الليل

0 0 1 * *

كل ربع سنة (يناير، أبريل، يوليو، أكتوبر) عند منتصف الليل

0 0 1 1,4,7,10 *

كل 30 دقيقة بين 9 صباحاً و5 مساءً في أيام العمل

*/30 9-17 * * 1-5

المصائد

"كل ساعتين" هي 0 */2 * * *، وليس */2 * * * *

*/2 * * * * تعني كل دقيقتين. الخطوة تنطبق على الحقل الذي توجد فيه.

الأحد هو 0 و7 معاً

في Cron القياسي، 0 و7 كلاهما يعني الأحد. تجنب الغموض — استخدم 0 باتساق.

يوم الشهر ويوم الأسبوع هما OR وليس AND

0 0 1 * 1 تعمل في اليوم الأول من كل شهر وكذلك كل يوم اثنين — وليس فقط أيام الاثنين التي تقع في اليوم الأول. لتحقيق "أول اثنين في الشهر"، تحتاج منطق سكريبت خارج Cron نفسه.

المناطق الزمنية

يعمل Cron في المنطقة الزمنية المحلية للخادم إلا إذا تم تهيئته بشكل مختلف. مهمة عند 0 9 * * * على خادم UTC تعمل الساعة 9 صباحاً UTC — قد يكون ذلك الساعة 2 صباحاً أو 11 مساءً في منطقتك الزمنية.

تحقق دائماً:

timedatectl   # يعرض المنطقة الزمنية الحالية في Linux

اختصارات مسماة (غير قياسية لكن مدعومة على نطاق واسع)

الاختصارالمكافئالمعنى
@yearly0 0 1 1 *مرة في السنة
@monthly0 0 1 * *مرة في الشهر
@weekly0 0 * * 0مرة في الأسبوع (الأحد)
@daily0 0 * * *مرة في اليوم (منتصف الليل)
@hourly0 * * * *مرة في الساعة
@rebootعند بدء تشغيل النظام

توليد والتحقق من تعبيرات Cron

Cron Generator يتيح بناء التعبيرات بصرياً — اختر الجدول بلغة واضحة، احصل على تعبير Cron. لا مزيد من التخمين حول صحة 0 9 * * 1-5.

يعمل أيضاً بالعكس: الصق أي تعبير Cron واحصل على شرح واضح لموعد تشغيله.

بطاقة المرجع السريع

# ┌──── الدقيقة 0-59 # │ ┌─── الساعة 0-23 # │ │ ┌── اليوم 1-31 # │ │ │ ┌─ الشهر 1-12 # │ │ │ │ ┌ الأسبوع 0-7 (0=أحد) # │ │ │ │ │ * * * * * كل دقيقة 0 * * * * كل ساعة 0 0 * * * كل يوم عند منتصف الليل 0 9 * * 1 كل اثنين الساعة 9 */15 * * * * كل 15 دقيقة 0 0 1 * * أول يوم من كل شهر
مشاركة