---
read_when:
    - تريد مهام مجدولة وعمليات إيقاظ
    - أنت تصحح تنفيذ cron والسجلات الخاصة به
summary: مرجع CLI للأمر `openclaw cron` (جدولة المهام الخلفية وتشغيلها)
title: cron
x-i18n:
    generated_at: "2026-04-05T12:38:16Z"
    model: gpt-5.4
    provider: openai
    source_hash: f74ec8847835f24b3970f1b260feeb69c7ab6c6ec7e41615cbb73f37f14a8112
    source_path: cli/cron.md
    workflow: 15
---

# `openclaw cron`

إدارة مهام cron لجدولة Gateway.

ذو صلة:

- مهام Cron: [Cron jobs](/automation/cron-jobs)

نصيحة: شغّل `openclaw cron --help` للحصول على سطح الأوامر الكامل.

ملاحظة: تستخدم مهام `cron add` المعزولة التسليم عبر `--announce` افتراضيًا. استخدم `--no-deliver` للإبقاء على
المخرجات داخلية. لا يزال `--deliver` متاحًا كاسم مستعار متروك لـ `--announce`.

ملاحظة: تتوقع العمليات المعزولة المملوكة لـ cron ملخصًا بنص عادي، ويتولى المشغّل
مسار الإرسال النهائي. يُبقي `--no-deliver` التشغيل داخليًا؛ ولا يعيد
التسليم إلى أداة رسائل الوكيل.

ملاحظة: تُحذف المهام ذات التشغيل الواحد (`--at`) بعد النجاح افتراضيًا. استخدم `--keep-after-run` للاحتفاظ بها.

ملاحظة: يدعم `--session` القيم `main` و`isolated` و`current` و`session:<id>`.
استخدم `current` للربط بالجلسة النشطة وقت الإنشاء، أو `session:<id>` من أجل
مفتاح جلسة صريح ودائم.

ملاحظة: بالنسبة إلى مهام CLI ذات التشغيل الواحد، تُعامل تواريخ `--at` التي لا تحتوي على إزاحة زمنية على أنها UTC ما لم تمرر أيضًا
`--tz <iana>`، والذي يفسر ذلك الوقت المحلي في المنطقة الزمنية المحددة.

ملاحظة: تستخدم المهام المتكررة الآن تراجع إعادة محاولة أسيًا بعد الأخطاء المتتالية (30 ثانية ← 1 دقيقة ← 5 دقائق ← 15 دقيقة ← 60 دقيقة)، ثم تعود إلى الجدول العادي بعد التشغيل الناجح التالي.

ملاحظة: يعيد `openclaw cron run` الآن التحكم بمجرد وضع التشغيل اليدوي في قائمة التنفيذ. تتضمن الاستجابات الناجحة `{ ok: true, enqueued: true, runId }`؛ استخدم `openclaw cron runs --id <job-id>` لمتابعة النتيجة النهائية.

ملاحظة: يفرض `openclaw cron run <job-id>` التشغيل افتراضيًا. استخدم `--due` للحفاظ على
السلوك الأقدم "شغّل فقط إذا كان مستحقًا".

ملاحظة: تُخفي دورات cron المعزولة الردود القديمة التي تقتصر على الإقرار فقط. إذا كانت
النتيجة الأولى مجرد تحديث حالة مؤقت ولم يكن أي تشغيل لوكيل فرعي تابع
مسؤولًا عن الإجابة النهائية، فإن cron يعيد التوجيه مرة واحدة للحصول على النتيجة الحقيقية
قبل التسليم.

ملاحظة: إذا أعاد تشغيل cron معزول الرمز الصامت فقط (`NO_REPLY` /
`no_reply`)، فإن cron يمنع التسليم الصادر المباشر وكذلك مسار الملخص الاحتياطي
الموضوع في قائمة الانتظار، لذلك لا يتم نشر أي شيء في الدردشة.

ملاحظة: يستخدم `cron add|edit --model ...` ذلك النموذج المسموح المحدد للمهمة.
إذا لم يكن النموذج مسموحًا به، يحذر cron ويعود إلى اختيار نموذج
الوكيل/الافتراضي الخاص بالمهمة بدلًا من ذلك. تظل سلاسل الرجوع الاحتياطي المكوّنة مطبقة،
لكن تجاوز النموذج العادي بدون قائمة رجوع احتياطي صريحة لكل مهمة لم يعد يضيف النموذج الأساسي
للوكيل كهدف إعادة محاولة إضافي مخفي.

ملاحظة: تكون أسبقية نموذج cron المعزول كالتالي: تجاوز Gmail-hook أولًا، ثم
`--model` لكل مهمة، ثم أي تجاوز نموذج مخزن لجلسة cron، ثم اختيار
الوكيل/الافتراضي العادي.

ملاحظة: يتبع الوضع السريع لـ cron المعزول اختيار النموذج المباشر المحلول. يُطبق
تكوين النموذج `params.fastMode` افتراضيًا، لكن تجاوز `fastMode`
المخزن في الجلسة يظل صاحب الأولوية على التكوين.

ملاحظة: إذا ألقى تشغيل معزول الخطأ `LiveSessionModelSwitchError`، فإن cron يحفظ
المزوّد/النموذج المحوّل إليه (وكذلك تجاوز ملف تعريف المصادقة المحوّل عند وجوده) قبل
إعادة المحاولة. تظل حلقة إعادة المحاولة الخارجية محدودة بمحاولتي تبديل بعد
المحاولة الأولية، ثم تتوقف بدلًا من التكرار إلى ما لا نهاية.

ملاحظة: تستخدم إشعارات الفشل `delivery.failureDestination` أولًا، ثم
`cron.failureDestination` العام، ثم تعود في النهاية إلى
هدف الإعلان الأساسي للمهمة عندما لا يكون هناك هدف فشل صريح مكوّن.

ملاحظة: يتم التحكم في الاحتفاظ/التقليم من خلال التكوين:

- `cron.sessionRetention` (الافتراضي `24h`) يزيل جلسات التشغيل المعزولة المكتملة.
- `cron.runLog.maxBytes` + `cron.runLog.keepLines` يزيلان `~/.openclaw/cron/runs/<jobId>.jsonl`.

ملاحظة ترقية: إذا كانت لديك مهام cron أقدم من تنسيق التسليم/التخزين الحالي، فشغّل
`openclaw doctor --fix`. يقوم Doctor الآن بتطبيع حقول cron القديمة (`jobId` و`schedule.cron`،
وحقول التسليم ذات المستوى الأعلى بما في ذلك `threadId` القديم، وأسماء التسليم المستعارة `provider` في الحمولة) ويهجّر
مهام الرجوع الاحتياطي البسيطة لـ webhook ذات `notify: true` إلى تسليم webhook صريح عندما يكون `cron.webhook`
مكوّنًا.

## تعديلات شائعة

حدّث إعدادات التسليم بدون تغيير الرسالة:

```bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
```

تعطيل التسليم لمهمة معزولة:

```bash
openclaw cron edit <job-id> --no-deliver
```

تمكين سياق bootstrap خفيف لمهمة معزولة:

```bash
openclaw cron edit <job-id> --light-context
```

الإعلان إلى قناة محددة:

```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
```

إنشاء مهمة معزولة بسياق bootstrap خفيف:

```bash
openclaw cron add \
  --name "Lightweight morning brief" \
  --cron "0 7 * * *" \
  --session isolated \
  --message "Summarize overnight updates." \
  --light-context \
  --no-deliver
```

ينطبق `--light-context` على مهام دورة الوكيل المعزولة فقط. بالنسبة إلى تشغيلات cron، يُبقي الوضع الخفيف سياق bootstrap فارغًا بدلًا من إدخال مجموعة bootstrap الكاملة لمساحة العمل.

ملاحظة حول ملكية التسليم:

- توجّه مهام cron المعزولة المملوكة لـ cron دائمًا التسليم النهائي المرئي للمستخدم من خلال
  مشغّل cron (`announce` أو `webhook` أو `none` الداخلي فقط).
- إذا ذكرت المهمة مراسلة مستلم خارجي، فيجب على الوكيل
  وصف الوجهة المقصودة في نتيجته بدلًا من محاولة إرسالها مباشرة.

## أوامر إدارية شائعة

تشغيل يدوي:

```bash
openclaw cron run <job-id>
openclaw cron run <job-id> --due
openclaw cron runs --id <job-id> --limit 50
```

إعادة توجيه الوكيل/الجلسة:

```bash
openclaw cron edit <job-id> --agent ops
openclaw cron edit <job-id> --clear-agent
openclaw cron edit <job-id> --session current
openclaw cron edit <job-id> --session "session:daily-brief"
```

تعديلات التسليم:

```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
openclaw cron edit <job-id> --best-effort-deliver
openclaw cron edit <job-id> --no-best-effort-deliver
openclaw cron edit <job-id> --no-deliver
```

ملاحظة حول تسليم الإخفاق:

- `delivery.failureDestination` مدعوم للمهام المعزولة.
- لا يمكن لمهام الجلسة الرئيسية استخدام `delivery.failureDestination` إلا عندما يكون
  وضع التسليم الأساسي هو `webhook`.
- إذا لم تعيّن أي وجهة فشل وكانت المهمة تعلن بالفعل إلى
  قناة، فإن إشعارات الفشل تعيد استخدام هدف الإعلان نفسه.
