
به اشتراک بگذارید
اگر سروری دارید که باید هر روز بکاپ بگیرد، هر ساعت کش را پاک کند یا هر دقیقه وضعیت سرویسها را چک کند؛ انجام دستی این کارها عملاً غیرممکن است. اینجاست که تنظیم کرون جاب روی سرور به کمک شما میآید.
کرون جاب (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] (نتیجه اجرا یا ارسال ایمیل گزارش)
🔸 نکته فنی: سرویس 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 را بزنید که سادهتر است).

3- در محیط ویرایشگر به انتهای فایل بروید و دستور خود را اضافه کنید. مانند زیر:
# بکاپ روزانه ساعت 3 صبح
0 3 * * * /usr/local/bin/backup.sh
# پاکسازی لاگ هر هفته یکشنبه
0 0 * * 0 /usr/local/bin/cleanup.sh
``` 
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 کلیک کنید.

🔸 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 برای بررسی صحت زمانبندی استفاده کنید.
⚠️ هشدار:
جمعبندی تنظیم کرون جاب روی سرور
در این مقاله از بلاگ وب داده، به صورت جامع با تنظیم کرون جاب روی سرور آشنا شدید. از تعریف و سینتکس گرفته تا آموزش عملی در SSH، cPanel و DirectAdmin. با یادگیری این ابزار، شما کارهای تکراری را به ماشین میسپارید و خودتان روی توسعه و رشد کسبوکارتان تمرکز میکنید. ما در این مقاله سعی کردیم از مفاهیم پایه تا دستورات پیشرفته SSH را پوشش دهیم.
اگر برای اجرای اسکریپتهای خاص یا رباتهای تلگرامی نیاز به بستری پایدار و بدون محدودیت دارید، پیشنهاد ما استفاده از سرورهای مجازی وبداده است تا بدون نگرانی از محدودیتهای هاست اشتراکی، اتوماسیون خود را پیادهسازی کنید.
💬 شما از cron job برای چه کاری استفاده میکنید؟ اگر در تنظیم دستور خاصی مشکل دارید، همین پایین در بخش نظرات بنویسید تا تیم فنی وب داده شما را راهنمایی کند.
امیدواریم این مقاله از بلاگ وب داده برای شما مفید و کاربردی بوده باشد.
همین حالا شبکه خود را گسترش دهید! 👇
سوالات متداول تنظیم کرون جاب
کرون جاب چیست و چه کاربردی دارد؟
کرون جاب یک ابزار زمانبندی در لینوکس است که امکان اجرای خودکار دستورات و اسکریپتها را در زمانهای مشخص فراهم میکند. کاربردهای رایج آن شامل بکاپگیری خودکار، پاکسازی فایلهای موقت، ارسال ایمیل و اجرای وظایف وردپرس است.



