زمان‌بندی خودکار اسکریپت و دستورات با Cron Job در لینوکس؛ ساختار خط کرون، مثال‌های کاربردی و نکات مهم را یاد بگیرید.

آموزش Cron Job در لینوکس

Cron Job سیستم زمان‌بندی وظایف در لینوکس است که به شما اجازه می‌دهد اسکریپت‌ها یا دستورات را به‌صورت خودکار در زمان‌های مشخص (مثلاً هر شب ساعت ۳ بامداد یا هر ۵ دقیقه یک‌بار) اجرا کنید — بدون نیاز به حضور شما پای سرور.

ویرایش جدول کرون‌جاب کاربر

crontab -e

اولین بار که این دستور را اجرا کنید، از شما ویرایشگر مورد نظر (معمولاً nano) را می‌پرسد.

ساختار یک خط Cron

* * * * * دستور_مورد_نظر
│ │ │ │ │
│ │ │ │ └─ روز هفته (0-6، شنبه=6 یا ۰=یکشنبه بسته به تنظیم)
│ │ │ └─── ماه (1-12)
│ │ └───── روز ماه (1-31)
│ └─────── ساعت (0-23)
└───────── دقیقه (0-59)

مثال‌های کاربردی

  • اجرای بکاپ هر شب ساعت ۳ بامداد:
    0 3 * * * /home/user/backup.sh
  • اجرای اسکریپت هر ۵ دقیقه:
    */5 * * * * /usr/bin/php /var/www/cron.php
  • اجرای فقط روزهای دوشنبه ساعت ۹ صبح:
    0 9 * * 1 /home/user/report.sh
  • پاک‌سازی فایل‌های موقت اول هر ماه:
    0 0 1 * * find /tmp -type f -mtime +30 -delete

مشاهده کرون‌جاب‌های فعلی

crontab -l

نکات مهم

  • همیشه از مسیر کامل (Absolute Path) برای فایل‌ها و دستورات استفاده کنید؛ محیط اجرای cron متفاوت از ترمینال معمولی است و ممکن است متغیرهای PATH را نشناسد.
  • خروجی هر اجرا را به یک فایل لاگ هدایت کنید تا در صورت خطا بتوانید عیب‌یابی کنید: 0 3 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1
  • برای زمان‌بندی‌های در سطح کل سیستم (نه فقط یک کاربر)، از /etc/crontab یا پوشه /etc/cron.d/ استفاده کنید.

اگر می‌خواهید بکاپ خودکار دیتابیس یا فایل‌های سرورتان را با cron زمان‌بندی کنید، حتماً خروجی آن را تست کنید تا مطمئن شوید واقعاً کار می‌کند — یک بکاپ که هیچ‌وقت اجرا نشده، بی‌فایده‌تر از نبود بکاپ است.