کرونجاب یعنی «این دستور را سر ساعت مشخص اجرا کن». خیلی از کارهای سایت به همین وابسته است: انتشار زمانبندیشده مطالب وردپرس، ارسال ایمیلهای دورهای، گرفتن بکاپ خودکار و پاکسازی فایلهای موقت. در سیپنل ساختن کرونجاب چند دقیقه بیشتر طول نمیکشد.
ساخت کرونجاب
- وارد سیپنل شوید و در بخش Advanced روی Cron Jobs کلیک کنید.
- در قسمت Common Settings یکی از بازههای آماده را انتخاب کنید یا زمان را دستی بنویسید.
- دستور موردنظر را در فیلد Command وارد کنید.
- روی Add New Cron Job بزنید.

زمانبندی را چطور بنویسیم
هر کرونجاب پنج فیلد زمانی دارد: دقیقه، ساعت، روز ماه، ماه و روز هفته.
| بازه | مقدار |
|---|---|
| هر ۵ دقیقه | */5 * * * * |
| هر ساعت، دقیقه صفر | 0 * * * * |
| هر روز ساعت ۳ بامداد | 0 3 * * * |
| هر دوشنبه ساعت ۶ | 0 6 * * 1 |
| اول هر ماه | 0 0 1 * * |
نمونه دستورهای پرکاربرد
اجرای یک فایل PHP
/usr/local/bin/php /home/user/public_html/script.php
بهجای user نام کاربری هاست خودتان را بگذارید. مسیر دقیق فایل را از مدیریت فایل سیپنل بردارید.
فراخوانی یک آدرس اینترنتی
wget -q -O /dev/null https://yourdomain.ir/cron.php
این حالت وقتی به کار میآید که اسکریپت شما باید از طریق وب اجرا شود، مثل کرون وردپرس یا برخی افزونهها.
اجرای کرون وردپرس بهجای کرون داخلی
اگر سایت وردپرسی پربازدید دارید، بهتر است کرون داخلی وردپرس را غیرفعال و بهجایش یک کرون واقعی روی wp-cron.php تنظیم کنید؛ این کار بار اضافه هر بازدید را برمیدارد.
ایمیل گزارش کرون
در بالای همان صفحه فیلدی برای ایمیل هست. خروجی هر اجرا به این آدرس فرستاده میشود. اگر کرون هر دقیقه اجرا میشود، صندوقتان پر میشود؛ برای جلوگیری، انتهای دستور >/dev/null 2>&1 را اضافه کنید.
کرون وردپرس؛ چرا و چطور جایگزینش کنیم
وردپرس یک کرون داخلی دارد که فقط وقتی کسی از سایت بازدید میکند اجرا میشود. نتیجه این است که در سایت کمبازدید، کارهای زمانبندیشده دیر انجام میشوند و در سایت پربازدید، هر بازدید کمی بار اضافه میآورد. راهحل، خاموش کردن کرون داخلی و استفاده از کرون واقعی سرور است.
- در فایل
wp-config.phpاین خط را اضافه کنید:define('DISABLE_WP_CRON', true); - در سیپنل یک کرونجاب با بازه هر ۱۵ دقیقه بسازید و این دستور را بگذارید:
wget -q -O /dev/null "https://yourdomain.ir/wp-cron.php?doing_wp_cron"
حالا کارهای زمانبندیشده (انتشار زماندار، بکاپ خودکار، ایمیلهای دورهای) مستقل از بازدید انجام میشوند.
نمونه دستورهای کاربردی
| کار | دستور |
|---|---|
| اجرای فایل PHP با نسخه خاص | /usr/local/bin/ea-php81 /home/user/public_html/task.php |
| فراخوانی یک آدرس بدون ذخیره خروجی | curl -s https://yourdomain.ir/cron.php > /dev/null |
| پاک کردن فایلهای موقت قدیمیتر از ۷ روز | find /home/user/tmp -type f -mtime +7 -delete |
| گرفتن خروجی دیتابیس | mysqldump -u user -p'pass' dbname > /home/user/backup/db.sql |
در دستورهایی که رمز دارند، دقت کنید خروجی کرون به ایمیل فرستاده نشود. انتهای دستور
>/dev/null 2>&1بگذارید و سطح دسترسی فایل خروجی را محدود کنید.
لاگ گرفتن از اجرای کرون
برای اینکه بدانید کرون واقعاً اجرا شده و چه خروجی داشته، خروجی را در فایل بریزید:
/usr/local/bin/php /home/user/public_html/task.php >> /home/user/cron.log 2>&1
فایل cron.log را هر چند وقت بررسی و خالی کنید تا حجیم نشود.
خطاهای رایج و علتشان
| نشانه | علت محتمل |
|---|---|
| هیچ اتفاقی نمیافتد | مسیر فایل اشتباه است یا فایل اجرا نمیشود |
| خطای Permission denied | سطح دسترسی فایل یا پوشه |
| خروجی خطای PHP | نسخه PHP دستور با نسخه سایت فرق دارد |
| صندوق ایمیل پر از پیام کرون | خروجی به /dev/null هدایت نشده است |
| اجرا با تأخیر | بازه خیلی کوتاه انتخاب شده و سرور محدودش کرده |
چند توصیه عملی
- بازههای کمتر از ۵ دقیقه را روی هاست اشتراکی انتخاب نکنید.
- کارهای سنگین (مثل بکاپ) را در ساعات کمبازدید بامداد زمانبندی کنید.
- برای هر کار یک کرون جدا بسازید تا اگر یکی خطا داد، بقیه اجرا شوند.
- بعد از ساخت، یک بار دستور را دستی اجرا کنید تا از درستیاش مطمئن شوید.
چرا کرونجاب اجرا نمیشود
- مسیر اشتباه: مسیر فایل را کامل و از ریشه بنویسید، نه نسبی.
- نسخه PHP: اگر اسکریپت به نسخه خاصی نیاز دارد، مسیر همان نسخه را در دستور بگذارید. برای تغییر نسخه، آموزش تغییر نسخه PHP را ببینید.
- دسترسی فایل: فایل باید سطح دسترسی مناسب داشته باشد.
- بازه خیلی کوتاه: در هاستهای اشتراکی بازههای کمتر از ۵ دقیقه معمولاً محدود میشوند تا منابع سرور برای همه بماند.
جمعبندی
با یک کرونجاب درست، کارهای تکراری سایت خودکار انجام میشود و لازم نیست به یاد داشته باشید. اگر در نوشتن دستور مطمئن نیستید، مسیر فایل و بازه دلخواهتان را برای پشتیبانی رایکت بفرستید تا دستور را برایتان بنویسند. امکان کرونجاب روی همه هاستهای لینوکس رایکت فعال است.
بیشتر بخوانید: اتوماسیون کارهای سایت با هوش مصنوعی و کرونجاب.
بیشتر بخوانید: خطای «زمانبندی از دست رفت» و تنظیم WP-Cron با کرون واقعی.