اگر سروری دارید که باید هر روز بکاپ بگیرد، هر ساعت کش را پاک کند یا هر دقیقه وضعیت سرویس‌ها را چک کند؛ انجام دستی این کارها عملاً غیرممکن است. اینجاست که تنظیم کرون جاب روی سرور به کمک شما می‌آید.
کرون جاب (Cron Job)؛ دستیار نامرئی و وقت‌شناس سرور شماست. تصور کنید یک کارمند خستگی‌ناپذیر دارید که هر شب راس ساعت 3 بامداد از سایت شما بکاپ می‌گیرد، ایمیل‌های تبلیغاتی را سر ساعت 8 صبح ارسال می‌کند و کش‌های اضافی سرور را بدون اینکه به او یادآوری کنید، پاک می‌کند. این دقیقاً کاری است که Cron Job در سرور انجام می‌دهد.

💡 کرون جاب به زبان ساده = سیستمی برای زمان‌بندی و اجرای خودکار دستورات تکراری در سرور بدون دخالت دست.
✅ مناسب برای: بکاپ‌گیری، ارسال ایمیل انبوه، تمدید اشتراک کاربران، پاکسازی دیتابیس.

حتماً زمانی که این مقاله را باز کرده‌اید، به دنبال راهی هستید تا از شر کارهای دستی و تکراری در مدیریت سرور خلاص شوید و یا اسکریپت خاصی دارید که باید در زمان مشخصی اجرا شود. در این مقاله از بلاگ وب داده قصد داریم برخلاف آموزش‌های پیچیده و گنگ، به زبانی ساده، شما را به یک متخصص تنظیم Cron تبدیل کنیم تا تا از شر کارهای دستی و تکراری در مدیریت سرور خلاص شوید.👇

بخش اول: کرون جاب (Cron Job) چیست؟

کرون جاب (Cron Job) یک ابزار سیستمی در سیستم‌عامل‌های لینوکس و یونیکس است که وظیفه زمان‌بندی (Scheduling) را بر عهده دارد و به شما امکان می‌دهد دستورات یا اسکریپت‌ها را در زمان‌های مشخص و به صورت خودکار اجرا کنید. کلمه “Cron” از واژه یونانی “Chronos” به معنی زمان گرفته شده است.
تصور کنید یک دستیار هوشمند دارید که هرگز خواب ندارد؛ هر شب ساعت 3 صبح از دیتابیس بکاپ می‌گیرد، هر ساعت فایل‌های موقت را پاک می‌کند و هر 5 دقیقه سلامت سرویس‌ها را چک می‌کند. این دقیقاً همان کاری است که کرون جاب انجام می‌دهد.

اگر بخواهیم تشبیه کنیم، کرون جاب مثل “ساعت زنگ‌دار هوشمند” سرور شماست. شما کوک می‌کنید که “فلان کار” در “فلان زمان” انجام شود؛ بعد از آن می‌توانید با خیال راحت بخوابید، چون سرور بیدار است و کار را انجام می‌دهد.

معماری عملکرد کرون جاب:

[User Defines Task] 
      ⬇️
[Crontab File] (لیست وظایف و زمان‌ها)
      ⬇️
[Cron Daemon] (سرویس همیشه بیدار در پس‌زمینه)
      ⬇️ 🕒 (بررسی دقیقه به دقیقه)
[Execute Command] (آیا زمان اجرا رسیده؟ ✅ بله)
      ⬇️
[Server Output] (نتیجه اجرا یا ارسال ایمیل گزارش)
🔸 نکته فنی: Cron یک daemon (سرویس پس‌زمینه) است که از سال ۱۹۷۵ در یونیکس وجود دارد و امروزه در تمام توزیع‌های لینوکس به صورت پیش‌فرض نصب است.
🔸 نکته فنی: سرویس crond در پس‌زمینه سرور اجرا می‌شود و هر دقیقه فایل‌های تنظیمات را چک می‌کند. اگر زمان فعلی سیستم با زمان تعریف شده در فایل یکی باشد، دستور اجرا می‌شود.

ساختار و سینتکس دستورات Cron

قبل از اینکه به آموزش نحوه تنظیم کرون جاب بپردازیم، باید زبان صحبت کردن با Cron را یاد بگیریم. نترسید! خیلی ساده است. دستورات کرون از 5 ستاره ( 5 فیلد زمانی + دستور اجرایی) تشکیل شده‌اند که هر کدام معنای خاصی دارند.

┌───────────── دقیقه (0 - 59)
│ ┌───────────── ساعت (0 - 23)
│ │ ┌───────────── روز ماه (1 - 31)
│ │ │ ┌───────────── ماه (1 - 12)
│ │ │ │ ┌───────────── روز هفته (0 - 7) [0 و 7 = یکشنبه]
│ │ │ │ │
│ │ │ │ │
* * * * * /path/to/command
فیلدمقدار مجازتوضیح
دقیقه0-59در چه دقیقه‌ای از ساعت
ساعت0-23در چه ساعتی از روز
روز ماه1-31در چه روزی از ماه
ماه1-12در چه ماهی از سال
روز هفته0-7در چه روزی از هفته

رمزگشایی 5 ستاره Cron Job:

* * * * * [دستور اجرایی]

فیلدهای ستارهبازه مجازمفهوممثال
اول0-59دقیقه30 (دقیقه سی‌ام)
دوم0-23ساعت14 (ساعت 2 بعدازظهر)
سوم1-31روزِ ماه1 (اول ماه)
چهارم1-12ماه10 (ماه اکتبر)
پنجم0-6روزِ هفته5 (جمعه)

مثال‌های سریع بای ساختار دستورهای کرون:

  • 0 0 * * * ⬅️ هر روز راس ساعت 12 شب.
  • */15 * * * * ⬅️ هر 15 دقیقه یک‌بار.
  • 0 8 * * 6 ⬅️ ساعت 8 صبح، فقط روزهای شنبه.

📌 ابزار کمکی: اگر حفظ کردن این‌ها سخت است، می‌توانید از سایت crontab.guru برای تولید کد زمان‌بندی استفاده کنید.

کاربردهای رایج کرون جاب در مدیریت سرور

زمان‌بندی اسکریپت در سرور کاربردهای متنوعی دارد:

کاربردتوضیحمثال زمان‌بندی
بکاپ خودکارپشتیبان‌گیری از دیتابیس و فایل‌هاهر شب ساعت 3
پاکسازی لاگحذف فایل‌های موقت و لاگ‌های قدیمیهفته‌ای یک‌بار
WP-Cronاجرای وظایف زمان‌بندی‌شده وردپرسهر 15 دقیقه
مانیتورینگچک کردن وضعیت سرویس‌هاهر 5 دقیقه
ارسال گزارشایمیل گزارش روزانه/هفتگیروزانه ساعت 8 صبح
Sync داده‌هاهمگام‌سازی فایل‌ها بین سرورهاهر ساعت
ربات تلگرامKeep-alive و اجرای دستوراتهر دقیقه

بخش دوم: چرا به کرون جاب نیاز داریم؟

چرا مدیران حرفه‌ای سرور و توسعه‌دهندگان بدون Cron Job نمی‌توانند زندگی کنند؟ پاسخ در یک کلمه است: اتوماسیون.

  • حذف خطای انسانی: انسان ممکن است فراموش کند دکمه “بکاپ” را بزند، اما ربات فراموش نمی‌کند.
  • بهینه‌سازی منابع: کارهای سنگین (مثل فشرده‌سازی فایل‌ها) را به ساعات خلوت (مثلاً 3 صبح) موکول می‌کنید تا سرعت سایت در روز افت نکند.
  • پایداری سیستم: لاگ‌فایل‌های حجیم اگر به صورت خودکار پاک نشوند، می‌توانند دیسک سرور را پر کنند.

بخش سوم: آموزش عملی تنظیم کرون جاب

در این بخش همراه تیم فنی وب‌داده باشید تا به صورت عملی در 3 محیط مختلف (cPanel، DirectAdmin و SSH) کرون جاب تنظیم کنیم.

1- تنظیم Cron Job در سرور لینوکس از طریق SSH

اگر یک سرور مجازی (VPS) یا سرور اختصاصی دارید، بهترین روش برای تنظیم cron job در لینوکس استفاده از خط فرمان و دستور crontab است.

پیش‌نیازها و دسترسی به سرور:

  • ✅ دسترسی SSH به سرور (با کاربر root یا sudo)
  • ✅ آشنایی پایه با ویرایشگرهای متنی (vi, nano)
  • ✅ اطلاع از مسیر دقیق اسکریپت‌ها

برای اتصال به سرور لینوکس از طریق SSH از دستور زیر استفاده کنید:

ssh root@your-server-ip
# یا با پورت دلخواه
ssh  root@your-server-ip -p 2222

مراحل تنظیم cron job در لینوکس:

1- با نرم‌افزار Putty یا ترمینال و با استفاده از دستور بالا به سرور SSH بزنید.

2- سپس دستور زیر را تایپ کنید تا فایل تنظیمات باز شود و بتوانید crontab را ویرایش کنید:

crontab -e
تنظیم کرون جاب

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

تنظیم cron job

3- در محیط ویرایشگر به انتهای فایل بروید و دستور خود را اضافه کنید. مانند زیر:

# بکاپ روزانه ساعت 3 صبح
0 3 * * * /usr/local/bin/backup.sh

# پاکسازی لاگ هر هفته یکشنبه
0 0 * * 0 /usr/local/bin/cleanup.sh
```
تنظیم cron job در لینوکس

4- با کلید Ctrl+X و سپس Y و Enter فایل را ذخیره کنید و تمام.

🔶یک سناریوی واقعی برای مثال زمان‌بندی اسکریپت در سرور :

فرض کنید روی VPS خود یک اسکریپت پایتون دارید که باید هر ساعت قیمت ارز را چک کند:

0 * * * * /usr/bin/python3 /root/scripts/check_price.py >> /var/log/price_log.txt 2>&1
```

(توضیح دستور بالا: هر ساعت اجرا شو، خروجی و خطاها را در فایل لاگ ذخیره کن).

مثال‌های کاربردی زمان‌بندی اسکریپت

سناریودستور کرونتوضیح
هر دقیقه* * * * * /path/script.shبرای مانیتورینگ
هر ۵ دقیقه*/5 * * * * /path/script.shبرای چک سرویس
هر ساعت0 * * * * /path/script.shبرای sync داده
روزانه ساعت ۳ صبح0 3 * * * /path/script.shبرای بکاپ
هفتگی (یکشنبه)0 0 * * 0 /path/script.shبرای گزارش
ماهانه (روز اول)0 0 1 * * /path/script.shبرای فاکتور
دوشنبه تا جمعه ساعت ۸0 8 * * 1-5 /path/script.shبرای ایمیل کاری

2- تنظیم Cron Job در سی‌پنل (cPanel)

اگر از هاست اشتراکی یا سرور مجازی با کنترل پنل cPanel استفاده می‌کنید، کار بسیار ساده است:

🔸1- ورود به بخش Cron Jobs

ابتدا وارد سی‌پنل شوید و در بخش Advanced روی Cron Jobs کلیک کنید.

تنظیم کرون جاب در cpanel

🔸 2: تنظیم ایمیل اطلاع‌رسانی

می توانید در بخش Cron Email آدرس ایمیل را برای دریافت گزارش اجرای کرون وارد کنید.

تنظیم کرون جاب در سی پنل

⚠️ توجه: اگر کرون هر چند دقیقه اجرا می‌شود، ایمیل را خالی بگذارید تا inbox شما پر نشود.

برای غیرفعال کردن ایمیل در دستور:

/usr/local/bin/php /home/username/public_html/cron.php >/dev/null 2>&1

🔸3: اضافه کردن کرون جدید

سپس در بخش Add New Cron Job:

  • Common Settings: تنظیمات آماده (مثلاً Once Per Day).
  • Minute/Hour/etc: می‌توانید زمان دلخواه را به صورت دستی در فیلدهای مربوطه وارد کنید.تمامی این فیلدها در جدول زمانبندی زیر شرح داده شده است.
زمان‌بندی اسکریپت در سرور

از منوی Common Settings یکی از گزینه‌های پیش‌فرض را انتخاب کنید یا به صورت دستی فیلدها را پر کنید:

فیلدتوضیحمقدار نمونه
Minuteدقیقه اجرا0
Hourساعت اجرا3
Dayروز ماه* (هر روز)
Monthماه* (هر ماه)
Weekdayروز هفته* (همه روزها)

🔸 مرحله 3: وارد کردن دستور در بخش Command

/usr/local/bin/php /home/USERNAME/public_html/cron.php

📌 مهم‌ترین بخش! دستوری که باید اجرا شود. دستور زیر و یا هر دستور مورد نظرتان را در این بخش وارد کنید به جای USERNAME نام کاربری هاست خود را قرار دهید.

کرون جاب چیست

🔸 مرحله 5: ذخیره کرون جاب

در انتها روی Add New Cron Job کلیک کنید. به این ترتیب می توانید کرونی که تنظیم کرده اید را در بخش Current Cron Jobs مشاهده کنید.

نحوه تنظیم کرون جاب روی سرور
⚠️ نکته: مسیر /usr/local/bin/php ممکن است در سرورهای مختلف متفاوت باشد (مثلاً php خالی یا /usr/bin/php). مسیر فایل اسکریپت نیز باید مسیر کامل (Absolute Path) باشد.

3- تنظیم Cron Job در دایرکت ادمین (DirectAdmin)

در صورتی که از کنترل پنل دایرکت ادمین استفاده می کنید می توانید مراحل زیر را برای تنظیم کرون جاب روی سرور انجام دهید.

1- وارد پنل دایرکت ادمین شوید.

2- در بخش Advanced Features، روی Cron Jobs کلیک کنید.

تنظیم کرون جاب در دایرکت ادمین

3- روی دکمه Create Cron Job کلیک کنید.

آموزش تنظیم کرون جاب روی سرور

4- زمان‌بندی را وارد کرده و در کادر Command دستور خود را بنویسید.

وظایف زمان‌بندی‌شده سرور

دکمه Create را بزنید.

تنظیم کرون جاب

بخش چهارم: عیب‌یابی و رفع مشکلات کرون جاب

گاهی کرون جاب تنظیم می‌شود اما اجرا نمی‌شود و یا به درستی اجرا می شود اما نیاز دارید برخی تنظیمات جانبی انجام دهید. در این بخش رایج‌ترین مشکلات و راه‌حل‌ها را بررسی می‌کنیم.

1. جلوگیری از ارسال ایمیل مزاحم

کرون جاب به‌طور پیش‌فرض بعد از هر اجرا، خروجی را به ایمیل مدیر سرور می‌فرستد. اگر کرون شما هر دقیقه اجرا می‌شود، صندوق ایمیل شما منفجر خواهد شد!

برای جلوگیری از این کار، عبارت زیر را به انتهای دستور اضافه کنید:

>/dev/null 2>&1
```

این دستور یعنی: “خروجی و خطاها را به سیاه‌چاله (هیچ‌جا) بفرست”.

2. کرون جاب‌های رایج وردپرس و لاراول

  • وردپرس: برای غیرفعال کردن کرون مجازی وردپرس و استفاده از کرون واقعی سرور (که باعث افزایش سرعت سایت می‌شود):
*/30 * * * * wget -q -O - [https://domain.com/wp-cron.php?doing_wp_cron](https://domain.com/wp-cron.php?doing_wp_cron) >/dev/null 2>&1
```
  • لاراول (Laravel Scheduler): فریم‌ ورک لاراول فقط به یک کرون جاب نیاز دارد:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
```

3. تداخل در اجرا (Overlapping)

اگر اسکریپت بکاپ‌گیری شما 20 دقیقه طول می‌کشد اما کرون را روی هر 10 دقیقه تنظیم کرده‌اید، باعث تداخل و کرش کردن سرور می‌شود.

✅ راه حل: زمان‌بندی را واقع‌ بینانه تنظیم کنید یا از ابزارهایی مثل flock در لینوکس استفاده کنید که تا اتمام فرآیند قبلی، فرآیند جدید را استارت نزند.

4. چرا کرون جاب اجرا نمی‌شود؟

در ادامه برخی مشکلات که منجر به اجرای درست cron job می شود به همراه راه حل آنها را به صورت خلاصه بیان کرده ایم.

مشکلعلتراه‌حل
❌ مسیر اشتباهاستفاده از مسیر نسبیهمیشه از مسیر مطلق استفاده کنید
❌ دسترسی فایلاسکریپت قابل اجرا نیستchmod +x script.sh
❌ متغیرهای محیطیPATH تعریف نشدهمسیر کامل برنامه‌ها را بنویسید
❌ سینتکس اشتباهفرمت زمان‌بندی غلطبا crontab.guru تست کنید
❌ سرویس Cronسرویس متوقف شدهsystemctl status cron

✅ چک‌لیست رفع مشکل:

# 1. بررسی وضعیت سرویس cron
systemctl status cron

# 2. مشاهده لاگ کرون
tail -f /var/log/cron.log
# یا
grep CRON /var/log/syslog

# 3. تست دستی اسکریپت
/bin/bash /path/to/script.sh

# 4. بررسی دسترسی‌ها
ls -la /path/to/script.sh```

5. بررسی لاگ‌ها و دیباگ کردن

🔸 ذخیره خروجی کرون در فایل:

* * * * * /path/script.sh >> /var/log/myscript.log 2>&1

🔸 ارسال خطاها به ایمیل:

برای ارسال خطاها به ایمیل در ابتدای crontab این خط را اضافه کنید: دقت داشته باشید که به جای [email protected] ایمیل آدرستان را وارد کنید.

MAILTO="[email protected]"

🔸 تست آنلاین سینتکس:

از سایت crontab.guru برای بررسی صحت زمان‌بندی استفاده کنید.

⚠️ هشدار:

کرون‌هایی که خیلی زود اجرا می‌شوند (مثلاً هر دقیقه) می‌توانند سرور را overload کنند. پس همیشه منابع سرور را مانیتور کنید.

جمع‌بندی تنظیم کرون جاب روی سرور

در این مقاله از بلاگ وب‌ داده، به صورت جامع با تنظیم کرون جاب روی سرور آشنا شدید. از تعریف و سینتکس گرفته تا آموزش عملی در SSH، cPanel و DirectAdmin. با یادگیری این ابزار، شما کارهای تکراری را به ماشین می‌سپارید و خودتان روی توسعه و رشد کسب‌وکارتان تمرکز می‌کنید. ما در این مقاله سعی کردیم از مفاهیم پایه تا دستورات پیشرفته SSH را پوشش دهیم.

اگر برای اجرای اسکریپت‌های خاص یا ربات‌های تلگرامی نیاز به بستری پایدار و بدون محدودیت دارید، پیشنهاد ما استفاده از سرورهای مجازی وب‌داده است تا بدون نگرانی از محدودیت‌های هاست اشتراکی، اتوماسیون خود را پیاده‌سازی کنید.

💬 شما از cron job برای چه کاری استفاده می‌کنید؟ اگر در تنظیم دستور خاصی مشکل دارید، همین پایین در بخش نظرات بنویسید تا تیم فنی وب‌ داده شما را راهنمایی کند.

امیدواریم این مقاله از بلاگ وب‌ داده برای شما مفید و کاربردی بوده باشد.

با سرورهای مجازی وب‌ داده، منابع اختصاصی: رم و CPU مختص شماست؛ پردازش‌های سنگین روی سایت‌های دیگر تاثیر نمی‌گذارد. با دسترسی Root، هر پکیج یا نرم‌افزاری که برای اجرای کرون نیاز دارید نصب کنید.
همین حالا شبکه خود را گسترش دهید! 👇

سوالات متداول تنظیم کرون جاب

کرون جاب چیست و چه کاربردی دارد؟

کرون جاب یک ابزار زمان‌بندی در لینوکس است که امکان اجرای خودکار دستورات و اسکریپت‌ها را در زمان‌های مشخص فراهم می‌کند. کاربردهای رایج آن شامل بکاپ‌گیری خودکار، پاکسازی فایل‌های موقت، ارسال ایمیل و اجرای وظایف وردپرس است.

سارا صالحی ریحانی
سارا صالحی ریحانی

کارشناس IT، وردپرس و کپی‌رایتر حوزه هاستینگ. پس از سال‌ها تجربه در شبکه، به دنیای کلمات و تولید محتوا وارد شدم و حالا در تیم وب‌داده، مفاهیم پیچیده هاست و سرور را به زبانی ساده و کاربردی برای علاقه‌مندان به دنیای شبکه می‌نویسم.

مقاله‌ها: 91
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *