Linux

Пошаговая настройка cron-задач в Ubuntu: создание и управление задачами

В этом руководстве вы узнаете, как настроить cron-задачи в Ubuntu, чтобы автоматизировать выполнение регулярных задач. Мы покажем, как создавать, редактировать и контролировать cron-записи.

Обновлено 28 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04 LTSUbuntu 22.04 LTSUbuntu 24.04 LTS

Введение

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

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

  • Поддерживаемая версия Ubuntu (20.04 LTS, 22.04 LTS, 24.04 LTS).
  • Права суперпользователя (sudo), необходимые для управления службой cron.
  • Доступ к командной строке (терминал).
  • Служба cron обычно установлена по умолчанию, но если её нет, установите её с помощью sudo apt install cron.

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

  1. Включить и запустить службу cron
    Убедитесь, что служба работает и будет запускаться автоматически при каждой загрузке системы.
    sudo systemctl enable --now cron
    
  2. Открыть редактор crontab
    Для редактирования текущих заданий пользователя используется команда crontab -e.
    crontab -e
    

    Система предложит выбрать текстовый редактор (обычно nano). Откройте файл для редактирования.
  3. Добавить новую задачу cron
    Вставьте строку задачи, например, ежедневное выполнение скрипта резервного копирования в 02:00 ночи:
    0 2 * * * /home/user/backup.sh
    

    Формат: <минута> <час> <день_месяца> <месяц> <день_недели> <команда>. Используйте звёздочку (*), чтобы указать «каждый» показатель, а слэш (/) для указания интервалов.
  4. Настроить права и переменные окружения
    • Если скрипт требует elevated прав, добавьте sudo в команду:
      0 2 * * * sudo /home/user/backup.sh
      
    • Для заданий, требующих конкретных переменных окружения, добавьте их в начало файла crontab:
      SHELL=/bin/bash
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      HOME=/home/user
      

    Сохраните изменения, выйдя из редактора (Ctrl+O, Enter в nano).
  5. Проверить задачу и активировать её
    • Проверьте изменения с помощью crontab -l:
      crontab -l
      
    • Просмотрите журнал cron, чтобы убедиться, что служба запускает задачу:
      journalctl -u cron -f
      

      Вы увидите записи типа CRON/jobname при запуске каждой задачи.

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

  • Список заданий: crontab -l должен отображать добавленные строки.
  • Логи выполнения: Запустите grep CRON /var/log/syslog (или journalctl -u cron), чтобы найти записи о выполнении задач.
  • Ручная проверка: Запустите скрипт напрямую (/home/user/backup.sh), чтобы убедиться, что он работает корректно.

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

  • Ошибка «права доступа запрещены». Убедитесь, что вы используете sudo для редактирования crontab (sudo crontab -e) и что скрипт доступен для чтения (chmod +x /path/to/script).
  • Задача не выполняется. Проверьте синтаксис (например, лишние пробелы), убедитесь, что команда имеет исполнительный бит, и проверьте поле PATH в crontab.
  • Cron не работает. Проверьте статус службы: systemctl status cron. Если служба остановлена, запустите sudo systemctl restart cron.
  • Отсутствие переменных окружения. Если скрипт не видит необходимые переменные, добавьте их в crontab, как показано в шаге 4.

⚠️ Важно: Храните конфиденциальные данные (пароли, ключи API) вне файла crontab; используйте файлы переменных окружения (.env) или ключевые сервисы systemd.

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

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

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

Полезное

Включить и запустить службу cron
Открыть редактор crontab
Добавить новую задачу cron
Настроить права и переменные окружения
Проверить задачу и активировать её

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