Cron β bu Unix va Linux serverlarda avtomatik vazifalarni rejalashtirish tizimi. 1975 yilda Brian Kernighan tomonidan AT&T Bell Labs'da yaratilgan. Cron har minutda ishga tushadi va o'zining rejasini tekshiradi β agar belgilangan vaqt kelgan bo'lsa, kerakli skriptni ishga tushiradi. Bu sizning saytingizda backup yaratish, email yuborish, ma'lumotlar bazasini tozalash kabi muntazam vazifalar uchun zarur.
Cron sintaksisi
Cron job sintaksisi besh maydondan iborat: daqiqa (0-59), soat (0-23), kun (1-31), oy (1-12), hafta kuni (0-7, 0 va 7 = yakshanba), keyin ishga tushiriladigan komanda.
Misollar: * * * * * /path/to/script.sh β har minutda; 0 * * * * /path/to/script.sh β har soat boshida; 0 0 * * * /path/to/script.sh β har kun yarim tunda; 0 0 * * 0 /path/to/script.sh β har yakshanba yarim tunda; */5 * * * * /path/to/script.sh β har 5 daqiqada.
cPanel'da cron job qo'shish
cPanel β Cron Jobs β "Add New Cron Job". Common Settings'dan tayyor jadval tanlash mumkin yoki maxsus vaqt belgilash. Command maydoniga ishga tushiriladigan komandani kiritish. Misol: WordPress wp-cron.php uchun har 15 daqiqada: */15 * * * * /usr/local/bin/php /home/user/public_html/wp-cron.php
Real misollar
WordPress wp-cron'ni avtomatlash β Native WordPress cron har sahifa yuklashda ishga tushadi (sekin), real cron orqali har 15 daqiqada ishlatish yaxshi. Birinchi wp-config.php'da define('DISABLE_WP_CRON', true); qo'shing, keyin cron yarating.
Backup database har kuni β 0 2 * * * mysqldump -u dbuser -pPASSWORD dbname | gzip > /home/user/backups/db_$(date +\%Y\%m\%d).sql.gz. % belgisi cron'da escape qilinishi kerak β \%.
Email send report β har dushanba ertalab: 0 9 * * 1 /usr/local/bin/php /home/user/scripts/weekly_report.php.
Log fayllarni tozalash β har oy 1-da: 0 0 1 * * find /home/user/logs -name "*.log" -mtime +30 -delete.
Xatolarni topish
Cron ishlamasa, asosiy sabablar: (1) Path muammosi β skript yo'li to'liq berilmagan; (2) Permission muammosi β skriptga execute permission yo'q (chmod +x); (3) Shebang yetishmovchiligi β skript boshida #!/bin/bash yoki #!/usr/bin/php; (4) Environment β cron environment shell'dan farq qiladi, $PATH va boshqalar boshqacha.
Debugging uchun output'ni log faylga yo'naltirish: * * * * * /path/to/script.sh > /home/user/cron.log 2>&1.
Sayt.uz amaliyot
Sayt.uz hosting tariflarida cron jobs default yoqilgan. Basic Hosting'da 5 cron, Pro Hosting'da cheksiz. Mijozlarning 67% kamida 1 ta cron'dan foydalanadi. Eng ko'p ishlatuvi: WordPress wp-cron (47%), database backup (32%), email/Telegram bildirishnoma (28%), log tozalash (19%). Maslahat: cron skriptlarni har doim absolute path bilan yozing (/home/user/script.sh, /script.sh emas) β bu xatolarning eng katta manbai.