Linux

Полный гайд по настройке и использованию cron-заданий в Linux

В этом руководстве вы научитесь создавать, редактировать и оптимизировать cron-задания в Linux для автоматизации рутинных задач.

Обновлено 22 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Debian 12Fedora 36CentOS 8

Введение / Зачем это нужно

Cron — это планировщик задач в Linux, который позволяет автоматически выполнять скрипты или команды в заданное время. С его помощью можно проводить обновления, резервное копирование, очистку логов и многие другие рутинные операции без вмешательства пользователя. После выполнения этого гайда вы сможете настроить как пользовательские, так и системные cron-задания и диагностировать типичные ошибки.

Требования / Подготовка

  • Доступ к терминалу с правами администратора (sudo).
  • Система на базе Linux (поддерживаются Ubuntu 22.04, Debian 12, Fedora 36, CentOS 8).
  • Базовые знания синтаксиса командной строки и работы с текстовым редактором.
  • Необязательно: скрипты, которые вы хотите запланировать (они должны быть исполняемыми).

Пошаговая инструкция

Шаг 1: Включить службу cron и проверить её статус

Сначала убедитесь, что демон cron работает. В большинстве дистрибутивов служба называется cron (или crond в некоторых случаях).

sudo systemctl enable cron
sudo systemctl status cron

💡 Совет: Если служба уже активна, команда status просто выведет информацию о работающем процессе.

Шаг 2: Создать или отредактировать пользовательский crontab

Пользовательский crontab содержит задания, принадлежащие конкретному пользователю. Он редактируется с помощью команды crontab -e.

crontab -e

Выберите редактор (обычно vi или nano). Добавьте задание, например, чтобы запускать скрипт /home/user/backup.sh каждый день в 02:00 ночи:

0 2 * * * /home/user/backup.sh

Сохраните файл и выйдите. После сохранения crontab становится активным.

Шаг 3: Добавить системное cron-задание (если необходимо)

Системные задания размещаются в каталоге /etc/cron.d/. Они применяются ко всем пользователям и могут использоваться для глобальных задач, таких как ежедневное обновление пакетов.

Создайте файл, например, my‑job:

sudo nano /etc/cron.d/my-job

Добавьте строку в формате crontab, например:

0 3 * * * root /usr/bin/yum -y update

Убедитесь, что файл имеет права 644 и принадлежит корневому пользователю:

sudo chmod 644 /etc/cron.d/my-job
sudo chown root:root /etc/cron.d/my-job

Cron автоматически загрузит новое задание; перезагрузка службы не требуется.

Шаг 4: Проверить и отладить cron-задания

Чтобы убедиться, что задания настроены правильно:

# Показать пользовательский crontab текущего пользователя
crontab -l

# Просмотреть системные задания
ls -l /etc/cron.d/

Проверьте журнал cron на предмет ошибок:

sudo journalctl -u cron -b

Если скрипт должен запускаться, но не запускается, выполните его вручную (с теми же параметрами, что и в crontab), чтобы выявить проблемы с путями или правами.

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

  1. Визуальная проверка: crontab -l отображает ваши пользовательские задания. Просмотрите /etc/cron.d/ для системных заданий.
  2. Лог выполнения: Некоторое время подождите (или установите задание с интервалом несколько минут) и проверьте journalctl -u cron. Успешные запуски обычно фиксируются без ошибок.
  3. Ручное тестирование: Запустите целевой скрипт с теми же параметрами, которые указаны в cron-задании, чтобы подтвердить работоспособность.

Возможные проблемы

  • Задание не запускается: Проверьте синтаксис crontab (отсутствие лишних пробелов, правильный таймzón). Убедитесь, что скрипт исполняем (chmod +x).
  • Неправильное время выполнения: Системный часовой пояс cron может отличаться от таймзоны пользователя. Используйте строку TZ, чтобы задать часовой пояс в /etc/cron.d/ файле.
  • Недостаток прав: Системные задания должны указывать пользователя (например, root). Пользовательские задания наследуют права вызывающего пользователя.
  • Переполнение логов: Если cron создает много журналов, настройте ротацию логов (logrotate) для /var/log/syslog или /var/log/cron.log.

Теперь у вас есть полностью работоспособная система cron, готовая автоматизировать любую регулярную задачу в вашей среде Linux. Не стесняйтесь экспериментировать с синтаксисом и интегрировать cron с другими инструментами автоматизации, такими как Ansible или Docker Compose, для более сложных рабочих процессов.

Часто задаваемые вопросы

Как просмотреть список активных cron-заданий?
Как настроить cron-задание для регулярного выполнения скрипта?
Что делать, если cron-задание не выполняется?
Как отключить или удалить cron-задание?

Полезное

Включить службу cron и проверить её статус
Создать или отредактировать пользовательский crontab
Добавить системное cron-задание (если необходимо)
Проверить и отладить cron-задания