Community Tutorials Debian كيفية جدولة مهام cron على ديبيان
كيفية جدولة مهام cron على ديبيان
DEBIAN

كيفية جدولة مهام cron على ديبيان

SKYLINE Knowledge Base
Photo by Sigmund on Unsplash

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

cron هو المجدول الأصلي على Unix منذ السبعينيات — ممل، موثوق، موجود على كل نظام. هذا الدليل يغطي crontab للمستخدم مقابل /etc/cron.d، فخاخ البيئة، التقاط الأخطاء، ومتى يجب اللجوء لمؤقتات systemd بدلًا منه.

المتطلبات المسبقة

  • Debian 12 مع sudo.
  • سكربت أو سطر واحد تريد تشغيله على جدول.

الخطوة 1: تأكيد تثبيت cron وتشغيله

sudo apt install -y cron
sudo systemctl enable --now cron
sudo systemctl status cron --no-pager

الخطوة 2: crontab المستخدم مقابل cron النظام

ثلاثة أماكن للجدولة:

  1. crontab المستخدمcrontab -e — يعمل كالمستخدم.
  2. /etc/cron.d/<name> — يعمل كمستخدم محدد. الأفضل للمهام التي تنشرها التطبيقات.
  3. /etc/cron.{daily,hourly,weekly,monthly}/ — سكربتات drop-in.
crontab -e

أضف سطرًا — لاحظ خمسة حقول في crontab المستخدم مقابل ستة في cron النظام:

*/5 *   *   *   *   /usr/local/bin/poll-queue.sh
0   3   *   *   *   /usr/local/bin/nightly-backup.sh

cron النظام (/etc/cron.d/skyline-backup):

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=ops@example.sa

0 3 * * *  ops  /usr/local/bin/nightly-backup.sh

الخطوة 3: التقاط stdout و stderr

0 3 * * *  /usr/local/bin/nightly-backup.sh >> /var/log/backup.log 2>&1

logrotate (/etc/logrotate.d/backup):

/var/log/backup.log {
    weekly
    rotate 8
    compress
    missingok
    notifempty
}

الخطوة 4: تجاوز فخ PATH/env

مهام cron تعمل ببيئة ضئيلة. السبب الأول لـ "يعمل في shell ويفشل في cron" هو PATH و locale:

  1. استخدم مسارات مطلقة لكل ثنائي.
  2. اضبط PATH و LANG أعلى crontab.
  3. ضع المنطق المعقد في سكربت shell واستدعِه.

الخطوة 5: مرجع سريع للصياغة

*  *  *  *  *  command
│  │  │  │  └── يوم الأسبوع (0-6)
│  │  │  └───── الشهر (1-12)
│  │  └──────── يوم الشهر (1-31)
│  └─────────── الساعة (0-23)
└────────────── الدقيقة (0-59)

الاختصارات المفيدة: @reboot, @daily, @hourly, @weekly, @monthly, @yearly.

التحقق

sudo grep CRON /var/log/syslog | tail -20
ls -la /var/log/backup.log

الخاتمة

cron هو الإجابة الصحيحة لـ 80% من المهام المجدولة. عندما تحتاج جدولة متقدمة بالتقويم، استخدم مؤقتات systemd.

الخطوات التالية

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Debian for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.