أمثلة تعبيرات كرون مرجع عملي مع أمثلة واقعية

نُشرت في
أمثلة عملية على عبارات كرون: مرجع عملي مع أمثلة حقيقية 1
إعلان · حذف؟

يُعد تعبير كرون مكونًا من خمسة مُدخلات مُفصولة بمسافات، يُخبر جدول Unix متى يجب تشغيل أمر. خمسة مُدخلات، عدد قليل من الرموز الخاصة، وعدد قليل من الأنماط الشائعة — هذه هي النموذج العقلي الكامل. يغطي هذا المرجع البنية، والرموز التي تُسبب صعوبة لدى الناس، والجدول الزمني الذي يستخدمه المطورون فعليًا.

الخمسة مُدخلات

يستخدم كرون القياسي خمسة مُدخلات مُوضعية:

* * * * *
│ │ │ │ └─ Day of week   (0–7, Sunday = 0 or 7)
│ │ │ └─── Month         (1–12)
│ │ └───── Day of month  (1–31)
│ └─────── Hour          (0–23)
└───────── Minute        (0–59)

يضيف AWS EventBridge وجدول Quartz في لغة Java مُدخلة في البداية، مما يجعل العدد الكلي للإدخالات ستة. تتحرك كل مُدخلات باستثناء المُدخلة الأولى إلى اليمين. هذا يُسبب صعوبة للمطورين الذين ينتقلون بين البيئات — سيُشغل تعبير Quartz عند الوضع القياسي في كرون بجدول مُعدّ مسبقًا، دون أي تحذير. الثواني استخدم كرون القياسي بخمسة مُدخلات إلا إذا طلب النظام بشكل صريح استخدام ستة.

الرموز الخاصة

أي قيمة — تطابق كل وحدة

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

يُعرف فقط crontab إذا رأيت *, ,, -و، و /في التعبير، فقد كُتب للقُطع أو AWS EventBridge — لا تُنسخه بشكل غير مُعدّ للجداول الكرون في لينكس. ?, L، أو W جدول المراجع: الجداول التي يستخدمها المطورون فعليًا

هذا الجزء يستحق التخزين كمُلصق. اصنع وتحقق من أي من هذه التعبيرات باستخدام

مولد تعبير كرون IO Tools مُستحسن نادرًا في البيئات الإنتاجية.

وصفتعبير كرونملحوظات
كل دقيقة* * * * *مراجعات صحة، دورات تحقق قصيرة
كل 5 دقائق*/5 * * * *إعادة تدفئة المخزون، تزامن المحتوى
كل 15 دقيقة*/15 * * * *كل 30 دقيقة
مُعادل لـ*/30 * * * *كل ساعة (في الساعة) 0,30 * * * *
يُشغل في :00 من كل ساعة0 * * * *كل 6 ساعات
تزامن البيانات، استيراد مُتدرج0 */6 * * *في منتصف الليل بالساعة العالمية
مُحفز يومي معياري0 0 * * *في الساعة 9 صباحًا بالساعة العالمية
إطلاق تقارير الصباح0 9 * * *في الساعة 9 صباحًا أيام الأسبوع
مهمات محدودة للأسابيع (من الاثنين إلى الجمعة)0 9 * * 1-5في الساعة 8:30 صباحًا أيام الأسبوع
إطلاق تقارير قبل البدء30 8 * * 1-5في الساعة 2 صباحًا كل يوم الأحد
الصيانة الأسبوعية، نسخات احتياطية في أوقات غير مكثفة0 2 * * 0في اليوم الأول من كل شهر
تشغيلات شهرية، تقارير متكررة0 0 1 * *في 1 يناير في منتصف الليل
إعادة تعيين سنوي، مهام بداية السنة0 0 1 1 *مفارقة الوقت

لا يمتلك كرون وعيًا بالساعة. يعمل في الوقت الذي يُحدده عليه الخادم — على معظم أنظمة لينكس، هذا الوقت هو الساعات العالمية. هذا عادة ما يكون مقبولًا حتى توجد مهام مترابطة مع ساعات العمل، أو مستخدمين في مناطق متعددة يتساءلون لماذا يصل "التقرير عند الساعة 9" في الساعة 2 بعد الظهر.

الافتراضات الأكثر أمانًا:

أعد تعيين الخادم إلى الساعات العالمية. احول إلى الوقت المحلي في منطق التطبيق، وليس في جدول كرون.

  • أضف تعليقًا لكل مهمة كرون بتوقيت الوقت المحلي، حتى لا يُفترض من يقرأ الجدول لاحقًا.
  • عند استخدام مُخططات السحابة (AWS EventBridge، Google Cloud Scheduler)، تحقق من حقل الوقت — معظمها يدعم أسماء مناطق IANA مباشرة، مما يزيل التناقض.
  • الاختبار: حساب وقت التسليم قبل التسليم
# Always comment with the effective local time
# Runs daily at midnight UTC (= 8pm EST / 5pm PST)
0 0 * * * /usr/bin/python3 /opt/scripts/daily_report.py

إطلاق مهمة كرون للاكتشاف أنها تُشغل كل دقيقة بدلًا من كل ساعة هو مسيرة مُتكررة. تجنب ذلك.

مُحسب وقت التسليم التالي لـ IO Tools Cron

ال يُظهر بدقة الوقت الذي سيُشغل فيه التعبير التالي — أدخل تعبيرك واحصل على عشرة أوقات تُشغل قبل أن تلمس الخادم. لتحقق من التعبير عبر سطر الأوامر:

إضافة مهمة كرون على لينكس

# Install croniter (Python) for quick expression testing
pip install croniter

python3 -c "
from croniter import croniter
from datetime import datetime

cron = croniter('*/15 * * * *', datetime.utcnow())
for _ in range(5):
    print(cron.get_next(datetime))
"

في نهاية سطر النسخ الاحتياطي يوجه خطأ الـ stderr إلى stdout، بحيث يُدرج كلاهما في ملف السجل. بدون ذلك، تذهب أخطاء كرون إلى مخزن البريد — ولا يُتحقق من ذلك.

# Open the crontab editor for the current user
crontab -e

# Format: minute hour day month weekday command
# Run backup script daily at 2:30am UTC
30 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1

# Run a Python script every 5 minutes
*/5 * * * * /usr/bin/python3 /home/user/scripts/sync.py

# View current crontab entries
crontab -l

# Edit another user's crontab (requires root)
crontab -u www-data -e

ال 2>&1 مُخطط GitHub Actions المُجدول

يستخدم مُخطط GitHub Actions نفس البنية الخمسة المُدخلات، دائمًا بالساعات العالمية. لا يوجد تجاوز للساعة.

ملاحظة واحدة: يمكن أن يُؤجل مُخططات GitHub Actions حتى 15 دقيقة خلال فترات التحميل العالي. لا تعتمد على ذلك لأي شيء يتطلب دقة زمنية.

name: Nightly Data Export

on:
  schedule:
    # Runs at 1:00 AM UTC every weekday
    - cron: "0 1 * * 1-5"
  workflow_dispatch: # Allow manual trigger

jobs:
  export:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run export script
        run: python scripts/export.py

عندما لا يكفي كرون

يُعالج كرون معظم الحالات على خادم واحد. تصبح محدودياته مشكلة عند التوسع:

لا توجد محاولات إعادة التشغيل عند الفشل.

  • إذا فشل المهمة، فإن التسليم التالي هو الوقت المُحدد التالي — لا يوجد إعادة تشغيل تلقائية. لا توجد تشفيرات توزيعية.
  • سيُشغل أكثر من خادم نفس كرون في نفس الوقت. لا توجد مراقبة.
  • لا يوجد لوحة مُدمجة لمراقبة سجلات التشغيل، أو تنبيهات الفشل، أو تتبع المدة. مشكلة
خيار أفضلمُخططات إعادة التشغيل وقوائم المهام
Celery Beat (لغة بايثون)، Sidekiq-Cron (لغة روبوت)تخطيط سحابي مع إعادة تشغيل
AWS EventBridge + Lambda، Google Cloud Schedulerإطلاق مُخططات CI/CD
مُخططات GitHub Actions المُجدولةتنظيم المهام المُراقبة
Airflow، Prefect، Temporalلأوامر على خادم واحد، يظل كرون الأداة المناسبة — بسيط، موثوق، ولا يعتمد على أي شيء. لجميع الأشياء التي تحتاج إلى ضمانات إعادة التشغيل، أو تشغيل متوازي، أو مراقبة الفشل، فإن استخدام قائمة مهام مخصصة يُصبح مربحًا بسرعة.

لبناء جدولك التالي دون تذكر البنية، و

استخدم مولد التعبير كرون مُحسب وقت التسليم التالي لـ Cron لتأكيد أن التسليم يحدث كما تفترض. أمثلة تعبيرات كرون: مرجع عملي مع أمثلة واقعية 2

هل تريد حذف الإعلانات؟ تخلص من الإعلانات اليوم

تثبيت ملحقاتنا

أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع

أضف لـ إضافة كروم أضف لـ امتداد الحافة أضف لـ إضافة فايرفوكس أضف لـ ملحق الأوبرا

وصلت لوحة النتائج!

لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!

إعلان · حذف؟
إعلان · حذف؟
إعلان · حذف؟

ركن الأخبار مع أبرز التقنيات

شارك

ساعدنا على الاستمرار في تقديم أدوات مجانية قيمة

اشتري لي قهوة
إعلان · حذف؟