Linux

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

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

Обновлено 9 августа 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04Ubuntu 22.04Debian 11CentOS 8

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

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

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

  • Любая современная дистрибутива Linux (Ubuntu, Debian, CentOS, Fedora и др.).
  • Права суперпользователя (sudo), чтобы устанавливать службы и редактировать системные таблицы.
  • Установленный пакет cron (обычно уже присутствует в базовой системе).
  • Текстовый редактор в терминале (nano, vim, emacs).

Шаг 1: Установка и проверка службы cron

Убедитесь, что cron уже установлен в системе:

cron --version

Если команда не найдена, установите пакет в зависимости от дистрибутива:

# Debian/Ubuntu
sudo apt update && sudo apt install cron

# RHEL/CentOS
sudo yum install cronie

После установки активируйте и запустите службу:

sudo systemctl enable --now cron

Проверьте, что служба работает:

sudo systemctl status cron

Если служба активна, вы увидите статус активен (работает).

Шаг 2: Открытие таблицы crontab

Для настройки заданий, которые будут выполняться от вашего имени, откройте таблицу crontab:

crontab -e

Система предложит выбрать текстовый редактор (nano, vim и т.д.). В этом файле хранятся все задания cron для текущего пользователя.

💡 Совет: Если редактор не установлен, сначала установите nano: sudo apt install nano.

Шаг 3: Добавление нового задания

Правила заданий cron состоят из пяти полей, разделённых пробелами, за которыми следует команда:

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

Пример: Запланировать выполнение скрипта /home/user/scripts/backup.sh ежедневно в 03:00 ночи:

0 3 * * * /home/user/scripts/backup.sh

Добавьте эту строку в таблицу crontab, сохраните файл и выйдите из редактора. Cron автоматически применит новые правила.

Шаг 4: Перезапуск cron и проверка

Перезапустите демо́н, чтобы гарантировать применение изменений:

sudo systemctl restart cron

Проверьте статус службы ещё раз:

sudo systemctl status cron

Убедитесь, что задание появилось в вашей таблице:

crontab -l

Если строка отображается, планировщик принял задание.

Шаг 5: Тестирование задания

Для быстрой проверки работоспособности добавьте временное задание, которое будет запускаться каждую минуту:

* * * * * /usr/bin/echo "тест $(date)" >> /tmp/cron.log

Через минуту проверьте содержимое файла:

cat /tmp/cron.log

Если вывод содержит строку с датой, задание cron работает корректно.

Шаг 6: Дополнительные советы и системные задания

  • Глобальные задания: Для настройки заданий, доступных всем пользователям, отредактируйте файл /etc/crontab или создайте файл в директории /etc/cron.d/ с указанием пользователя перед командой.
  • Используйте абсолютные пути: Всегда указывайте полный путь к скриптам, чтобы избежать ошибок при изменении текущей директории.
  • Установите права доступа: Убедитесь, что скрипты исполняемы (chmod +x /path/to/script.sh).
  • Настройка окружения: Если скрипту нужны переменные окружения, добавьте их перед командой, например SHELL=/bin/bash или PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin.

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

После выполнения всех шагов проверьте:

  1. Служба cron активна: sudo systemctl is-active cron.
  2. Ваше задание отображается: crontab -l.
  3. Скрипт был запущен в ожидаемое время (проверьте лог-файл или вывод скрипта).
  4. Системные задания (из /etc/crontab) также активны: grep -r "^\*\/" /etc/crontab.

Если все пункты выполнены, планировщик работает как надо.

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

  • Задание не выполняется: Проверьте синтаксис таблицы crontab (crontab -l), убедитесь, что скрипт исполняем и использует абсолютный путь.
  • Ошибка «команда не найдена»: Укажите полный путь к исполняемому файлу, иначе cron ищет его в системном PATH, который может отличаться.
  • Нет журналов: Включите логгирование заданий, добавив MAILTO=your@email.com в таблицу crontab, чтобы получать уведомления о запуске.
  • Проблемы с правами: Если задание создано root, но должно выполняться от имени другого пользователя, используйте синтаксис username в /etc/cron.d/ или sudo -u username команда.

Не стесняйтесь обращаться к документации cron (man crontab, man cron) для более глубокого понимания настроек.

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

Как просмотреть текущие задания cron?
Как создать задание cron, которое будет запускать скрипт ежедневно в 2 утра?
Почему cron не запускает мой скрипт?
Как настроить задание, которое работает от имени другого пользователя?

Полезное

Установка и проверка службы cron
Открытие таблицы crontab
Добавление нового задания
Перезапуск cron и проверка
Тестирование задания
Дополнительные советы и системные задания

Эта статья помогла вам решить проблему?