Главная  /  Помощь  /  Cron: запуск скриптов по расписанию

Cron: запуск скриптов по расписанию

Хостинг и cPanel2 мин чтения

Задания по расписанию в cPanel и на своём сервере: формат строки, примеры и почему задание не выполняется.

Содержание

Cron запускает команды и скрипты по расписанию: раз в десять минут, каждую ночь, по понедельникам. На хостинге задания добавляются в cPanel, на своём сервере — командой crontab.

В cPanel

Раздел «Дополнительно» → «Задания cron» (Cron Jobs). Выберите расписание из готовых вариантов или заполните поля вручную, а в поле «Команда» укажите, что запускать:

/usr/local/bin/php /home/логин/public_html/cron.php

/usr/local/bin/php — PHP версии по умолчанию. Если скрипту нужна определённая версия, укажите её путь, например для PHP 8.3: /opt/cpanel/ea-php83/root/usr/bin/php. Вывод задания cPanel присылает на почту, указанную в том же разделе; чтобы писем не было, допишите в конце команды >/dev/null 2>&1.

Формат строки

минута  час  день_месяца  месяц  день_недели  команда

Звёздочка — «любое значение», */10 — «каждые 10», дни недели — от 0 (воскресенье) до 6. Время — по часам сервера.

# каждые 10 минут
*/10 * * * * /usr/local/bin/php /home/логин/public_html/cron.php
# каждый день в 3:30 ночи
30 3 * * * /usr/local/bin/php /home/логин/public_html/cron.php
# по пятницам в полночь
0 0 * * 5 /usr/local/bin/php /home/логин/public_html/cron.php
# первого числа каждого месяца в 00:00
0 0 1 * * /usr/local/bin/php /home/логин/public_html/cron.php

Почему задание не выполняется

  • Относительные пути. Cron запускает команду не из папки сайта и с коротким списком каталогов в PATH. Указывайте полные пути: к программе (/usr/local/bin/php, а не php), к скрипту и к файлам, которые скрипт открывает. В PHP удобно строить пути от __DIR__.
  • Звёздочка в минутах. * 3 * * * — это каждую минуту с 3:00 до 3:59, а не один раз ночью. Нужно 0 3 * * *.
  • Ошибок не видно. Сохраняйте вывод в файл: … >> /home/логин/cron.log 2>&1 — и смотрите, что пишет скрипт.
  • Нет прав на запуск. Скрипт, который запускается сам, а не через php, должен быть исполняемым (chmod 755 script.sh) и начинаться со строки вроде #!/bin/bash.
  • Файл из Windows. Если скрипт редактировали в Windows, он может не запускаться из-за окончаний строк — как исправить, в статье Файлы из Windows: окончания строк.

На своём сервере

crontab -e   # открыть свои задания в редакторе
crontab -l   # показать задания

Задания от имени root — sudo crontab -e. Если команды crontab нет, установите cron: sudo apt install cron в Debian и Ubuntu, sudo dnf install cronie в AlmaLinux. Журнал запусков: journalctl -u cron (Debian, Ubuntu), journalctl -u crond (AlmaLinux), файл /var/log/cron во FreeBSD.

Не нашли ответ? Напишите в поддержку — подскажем.

Контакты (495) 664-22-98 или Написать нам

© 2026 Транзит Телеком · Все права защищены