تخطّ إلى المحتوى
AISI
𝕏
دليل إرشادي

إعداد Dagu لجدولة المهام الدورية

دليل عملي لتثبيت واستخدام Dagu كأداة جدولة مهام حديثة مع واجهة ويب مرئية ودعم DAG.

14 دقائق قراءة AutomationDevOps

عصر ما بعد الـ Cron التقليدي

لعقود من الزمن، اعتمد المطورون ومدراء النظم (DevOps) على أداة cron لجدولة المهام الدورية (مثل تشغيل سكربت للنسخ الاحتياطي يومياً الساعة 3 فجراً). ورغم كفاءتها، تفتقر cron لواجهة رسومية، التنبيهات الفورية عند الفشل، والقدرة على ربط المهام ببعضها (تشغيل مهمة (ب) فقط إذا نجحت مهمة (أ)). هنا يبرز Dagu كحل عصري ومفتوح المصدر يحل هذه المشاكل بأسلوب أنيق وسهل.

ما هو Dagu؟

Dagu هو أداة جدولة مهام (Job Scheduler) خفيفة جداً (تتكون من ملف تنفيذي واحد)، تتيح لك إعداد مهامك باستخدام ملفات YAML بسيطة، مع توفير واجهة ويب بصرية (Web UI) تتيح لك مراقبة سير المهام لحظة بلحظة. يتميز بدعمه لمفهوم DAG (Directed Acyclic Graph)، مما يعني أنه يمكنك رسم خريطة لمهام متتالية ومتفرعة لتعمل بشكل متزامن أو متتابع.

خطوات التثبيت والإعداد

1. التثبيت

يمكن تثبيت Dagu في ثوانٍ. إذا كنت تستخدم Linux أو macOS، افتح سطر الأوامر واكتب:

curl -L https://raw.githubusercontent.com/yohamta/dagu/main/scripts/install.sh | bash

أو ببساطة يمكنك تشغيله باستخدام Docker لتجنب المساس ببيئة الخادم الأساسية.

2. تشغيل واجهة الويب

بعد التثبيت، اكتب الأمر dagu server في سطر الأوامر. سيبدأ الخادم بالعمل. افتح متصفحك على الرابط http://localhost:8080 لتشاهد واجهة Dagu البصرية والنظيفة.

3. إنشاء أول مهمة (DAG)

يعتمد Dagu على مجلد افتراضي (غالباً ~/.dagu/dags) لقراءة المهام. قم بإنشاء ملف باسم backup.yaml واكتب فيه التالي:


name: Daily Database Backup
schedule: "0 3 * * *" # يومياً الساعة 3 فجراً
steps:
  - name: Dump Data
    command: pg_dump -U admin my_database > backup.sql
  - name: Upload to S3
    command: aws s3 cp backup.sql s3://my-bucket/
    depends:
      - Dump Data

في هذا المثال، بمجرد أن تحفظ الملف، سيظهر تلقائياً في واجهة الويب الخاصة بـ Dagu. يمكنك رؤية أن خطوة Upload to S3 تعتمد (depends) على نجاح خطوة Dump Data.

المراقبة والتحكم

من خلال واجهة Dagu يمكنك:

  • الضغط على زر التشغيل (Start) لاختبار المهمة فوراً دون انتظار موعدها المجدول.
  • مشاهدة سجلات الأخطاء (Logs) لكل خطوة على حدة من داخل المتصفح، مما يسهل عملية اكتشاف الأخطاء (Debugging).
  • تفعيل الإشعارات (عبر Webhooks أو البريد) لتصلك رسالة فور فشل أي مهمة لتتداركها.

الخلاصة

استبدال الـ cron المظلم بأداة مثل Dagu يمنح فرق التطوير راحة بال لا تقدر بثمن. فمن خلال ملفات YAML بسيطة وواجهة ويب شفافة، أصبح تتبع المهام اليومية، الأسبوعية، أو حتى المعقدة منها أمراً في غاية التنظيم والسهولة.