cp.lv — VPS, выделенные и облачные серверы

cp.lv (LANGMARKET LLP) — хостинг-провайдер: VPS, выделенные и облачные серверы на NVMe с выбором ОС, полным root-доступом и поддержкой 24/7. Тест-период до оплаты: выделенные серверы — 5 дней, VPS и облако — 5 часов.

Contact Info
LANGMARKET LLP
Rīga, Latvija

+371 00 000 000

Follow Us

Личный кабинет

Язык

Планировщик cron в Linux: синтаксис и примеры задач

Планировщик cron в Linux: синтаксис и примеры задач

Калькулятор cron-выражений

Введите строку из 5 полей: минута час день_месяца месяц день_недели. Описание и ближайшие запуски посчитаются автоматически.
Ближайшие запуски (локальное время браузера):

    Cron — стандартный планировщик задач в Linux: он запускает команды по расписанию (каждую минуту, час, день и т.д.). Расписание задаётся пятью полями в файле crontab. Разберём синтаксис и приведём готовые примеры.

    Синтаксис crontab

    Каждая строка задания состоит из пяти полей времени и команды:

    * * * * * команда
    │ │ │ │ │
    │ │ │ │ └─ день недели (0–7, где 0 и 7 — воскресенье)
    │ │ │ └─── месяц (1–12)
    │ │ └───── день месяца (1–31)
    │ └─────── час (0–23)
    └───────── минута (0–59)
    

    Специальные символы:

    • * — любое значение;
    • */5 — каждые 5 единиц (например, каждые 5 минут);
    • 1,15 — список значений;
    • 9-18 — диапазон.

    Как редактировать crontab

    Открыть свой список задач для редактирования:

    crontab -e
    

    Посмотреть текущие задания:

    crontab -l
    

    Изменения применяются автоматически после сохранения — перезапускать ничего не нужно.

    Примеры расписаний

    Расписание Строка Когда запускается
    Каждую минуту * * * * * ежеминутно
    Каждые 5 минут */5 * * * * 0, 5, 10…
    Каждый час 0 * * * * в начале часа
    Ежедневно в 3:30 30 3 * * * раз в сутки
    По будням в 9:00 0 9 * * 1-5 пн–пт
    1-го числа месяца 0 0 1 * * ежемесячно

    Готовые примеры заданий:

    # Бэкап базы каждый день в 2:30 ночи
    30 2 * * * /usr/local/bin/backup.sh
    
    # Очистка временных файлов каждое воскресенье в 4:00
    0 4 * * 0 find /tmp -type f -mtime +7 -delete
    
    # Проверка сайта каждые 10 минут
    */10 * * * * curl -s https://example.com > /dev/null
    

    Спецстроки

    Вместо пяти полей можно использовать удобные псевдонимы:

    @reboot   /path/script.sh   # при загрузке сервера
    @daily    /path/script.sh   # раз в сутки в полночь
    @hourly   /path/script.sh   # раз в час
    @weekly   /path/script.sh   # раз в неделю
    

    Логирование и отладка

    Cron не выводит результат на экран. Чтобы видеть, что происходит, перенаправляйте вывод в файл:

    0 2 * * * /path/backup.sh >> /var/log/backup.log 2>&1
    

    2>&1 направляет и ошибки, и обычный вывод в один лог.

    Проверить, что cron вообще выполняет задания, можно в системном журнале:

    grep CRON /var/log/syslog
    

    Частые причины, почему задача не работает

    • Относительные пути. Cron запускается в урезанном окружении. Указывайте полные пути к командам и файлам (/usr/bin/php, а не php).
    • Переменные окружения. PATH в cron минимален. Задайте нужные переменные в начале crontab или в скрипте.
    • Нет прав на выполнение. Сделайте скрипт исполняемым: chmod +x /path/script.sh.
    • Забыт перевод строки. Последняя строка crontab должна заканчиваться переводом строки.

    Частые вопросы

    Чем отличается crontab пользователя от системного? crontab -e редактирует задачи текущего пользователя. Системные задания лежат в /etc/crontab и /etc/cron.d/, где дополнительно указывается пользователь, от имени которого выполнять команду.

    Почему задача работает вручную, но не по cron? Чаще всего из-за окружения: cron не знает ваш PATH и переменные. Используйте абсолютные пути и задавайте переменные явно в скрипте.

    Как запустить задачу от имени root? Отредактируйте crontab root командой sudo crontab -e либо добавьте задание в /etc/cron.d/ с указанием пользователя root.

    Есть ли альтернатива cron? Да, systemd timers — более гибкая и логируемая альтернатива. Но cron проще и присутствует практически на любом сервере, поэтому остаётся стандартом.

    Итог

    Cron покрывает почти любую автоматизацию по расписанию: бэкапы, очистку, проверки. Освойте пять полей синтаксиса, всегда используйте абсолютные пути и логируйте вывод — и задачи будут выполняться стабильно.

    Нужен сервер под свои задачи и скрипты? Возьмите VPS на Linux, оформите аренду VPS или закажите Администрирование серверов.

    Лаура Зариня

    Лаура Зариня

    Маркетолог. Рассказывает о сервисах cp.lv и следит, чтобы условия и цены были понятны каждому клиенту.