Cron — система планирования автоматических задач в Unix/Linux. Создан Брайаном Керниганом в Bell Labs в 1975. Cron запускается каждую минуту и сверяется с расписанием — если время пришло, выполняет скрипт. Нужен для backup, email-рассылок, очистки БД и других регулярных задач.
Синтаксис
Пять полей: минута (0-59), час (0-23), день (1-31), месяц (1-12), день недели (0-7, 0 и 7 = воскресенье), команда.
Примеры: * * * * * /path/to/script.sh — каждую минуту; 0 * * * * /path/to/script.sh — каждый час в 00; 0 0 * * * ... — каждый день в полночь; 0 0 * * 0 ... — каждое воскресенье в полночь; */5 * * * * ... — каждые 5 минут.
cPanel
cPanel → Cron Jobs → "Add New Cron Job". Common Settings — готовые шаблоны или своё время. В Command — команда. WordPress wp-cron каждые 15 минут: */15 * * * * /usr/local/bin/php /home/user/public_html/wp-cron.php
Реальные примеры
WordPress wp-cron — нативный запускается на каждой странице (медленно). Лучше реальный cron. В wp-config: define('DISABLE_WP_CRON', true);, затем cron.
Бэкап БД ежедневно — 0 2 * * * mysqldump -u dbuser -pPASSWORD dbname | gzip > /home/user/backups/db_$(date +\%Y\%m\%d).sql.gz. % надо экранировать как \%.
Еженедельный отчёт — понедельник 9 утра: 0 9 * * 1 /usr/local/bin/php /home/user/scripts/weekly_report.php.
Очистка логов — 1-го числа: 0 0 1 * * find /home/user/logs -name "*.log" -mtime +30 -delete.
Отладка
Не работает — причины: (1) Путь — не полный; (2) Permission — нет execute (chmod +x); (3) Shebang — нет #!/bin/bash или #!/usr/bin/php; (4) Environment — cron $PATH другой.
Debugging: * * * * * /path/to/script.sh > /home/user/cron.log 2>&1.
Практика Sayt.uz
Cron включён. Basic — 5 cron, Pro — без лимита. 67% клиентов используют хотя бы один. Топ: WordPress wp-cron (47%), бэкап БД (32%), email/Telegram (28%), очистка логов (19%). Совет: всегда абсолютный путь — это главный источник ошибок.