До основного вмісту

Cron-завдання в ISPmanager 6: планувальник завдань

ISPmanager 6 · 19.04.2026 · 4 хв читання
Ілюстрація до статті «Cron-завдання в ISPmanager 6: планувальник завдань»

Cron — планувальник завдань Linux. Через ISPmanager ви можете додавати, редагувати і видаляти cron-завдання через графічний інтерфейс без редагування crontab вручну.

Створення cron-завдання

Головне меню → Cron → Створити.

ПолеОпис
КористувачВід чийого імені запускати
Хвилини0–59 або * (щохвилини)
Години0–23 або *
Дні місяця1–31 або *
Місяці1–12 або *
Дні тижня0–7 (0,7=нд) або *
КомандаПовний шлях до скрипта

Приклади cron-завдань

# Щогодини
0 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/cron.php

# Щодня о 03:00
0 3 * * * /usr/bin/php /var/www/user1/data/www/example.com/www/cleanup.php

# Кожні 5 хвилин
*/5 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/queue.php

# WordPress WP-Cron через curl (рекомендується замість wp-cron.php)
*/5 * * * * /usr/bin/curl -s https://example.com/wp-cron.php?doing_wp_cron > /dev/null
💡 Для WordPress рекомендується вимкнути вбудований WP-Cron (DISABLE_WP_CRON = true у wp-config.php) і запускати через системний cron — надійніше і швидше.

WordPress Cron через системний cron

# wp-config.php
define('DISABLE_WP_CRON', true);

# Cron-завдання (кожні 5 хвилин)
*/5 * * * * /usr/bin/php /var/www/user1/data/www/example.com/www/wp-cron.php > /dev/null 2>&1

Логування виведення cron

# Зберігати виведення в лог-файл
0 3 * * * /usr/bin/php /var/www/cron.php >> /var/log/mycron.log 2>&1

# Ігнорувати виведення
0 3 * * * /usr/bin/php /var/www/cron.php > /dev/null 2>&1
⚠️ Переконайтеся, що в cron-завданні вказано повний шлях до php: /usr/bin/php8.2 або /usr/bin/php. Відносні шляхи не працюють у cron.

Типові помилки cron в ISPmanager 6

СимптомПричина
sh: 1: /usr/bin/php: not foundНа сервері увімкнено мультиверсійність PHP, і потрібний бінарник лежить не в /usr/bin/php, а, наприклад, в /opt/php-8.2/bin/php
Завдання не з'явилося в списку після створенняФорма зберігається лише кнопкою «Ok» внизу; перехід на іншу вкладку панелі без збереження скасовує введення
Команда обривається на символі %% не екранований і сприймається cron як перехід на новий рядок — актуально для date +%Y%m%d у бекапах
Лист про помилку не приходитьISPmanager 6 не пересилає виведення cron на пошту за замовчуванням — потрібно явно додати MAILTO на початок команди або перенаправити виведення у файл
Permission denied при редагуванні чужого завданняДодатковий користувач або реселлер панелі не має прав рівня власника акаунта на цей cron
wp-cron.php запускається двічі поспільІнтервал cron збігається з TTL внутрішнього блокування WP-Cron; потрібно рознести розклади або додати lock-файл у сам скрипт
Завдання відпрацювало, але сайт не бачить змінPHP-CLI, з-під якого запущено cron, і PHP-FPM веб-процесу використовують різні екземпляри OPcache; після деплою через cron потрібне окреме скидання кешу для веба

Єдиний системний лог cron

Якщо завдань багато і зрозуміти, яке саме не спрацювало, складно — дивіться загальний лог cron-демона: він покаже сам факт запуску, навіть якщо PHP-скрипт усередині впав мовчки без виведення.

# На системах з systemd
journalctl -u cron --since today

# На системах з класичним syslog
grep CRON /var/log/syslog | tail -n 50

Коли cron в ISPmanager 6 не підходить

  • Завдання треба запускати частіше разу на хвилину — мінімальний крок cron становить 60 секунд незалежно від панелі
  • Потрібна черга з повторними спробами і пріоритетами — для постійно працюючого воркера (Supervisor, systemd unit) потрібні root-права, яких у звичайного акаунта ISPmanager немає
  • Потрібен запуск операцій з правами root (оновлення системних пакетів, робота з іншими акаунтами) — доступний лише crontab користувача сайту
  • Потрібен ланцюжок залежних кроків з умовною логікою — cron вміє лише грубе склеювання команд через && в одному рядку
  • Завдання має запускати зовнішня подія (webhook, зміна файлу, платіж від платіжної системи), а не час за розкладом — cron реагує лише на годинник, а не на події

Перевірка результату

Після створення завдання переконайтеся, що воно справді виконується і не падає мовчки — детальний розбір системних логів є у статті про логи і діагностику ISPmanager 6, а специфіку cron саме для WordPress — у статті про WordPress в ISPmanager 6. Просте правило: якщо після трьох запусків у лозі демона немає жодного рядка з іменем вашого завдання — проблема не в PHP-скрипті, а в самому записі crontab.

# Переглянути список системних cron-завдань конкретного користувача
crontab -l -u user1

# Перевірити останній виклик скрипта в лозі домену
tail -n 50 /var/www/user1/data/logs/example.com.log | grep cron.php
Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці