Linux

Настройка планировщика Cron в Linux: пошаговое руководство

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

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

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

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

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

  • Доступ к системе с правами root или пользователя sudo.
  • Установленный пакет cron (в большинстве дистрибутивов он уже присутствует).
  • Базовое знание работы с командной строкой и текстовыми редакторами (например, vi, nano).
  • Желательно иметь скрипты или команды, которые вы хотите запланировать.

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

Шаг 1: Установка и запуск службы Cron

На большинстве дистрибутивов Linux cron уже установлен. Если нет, установите его:

# Для Debian/Ubuntu
sudo apt-get update && sudo apt-get install cron
# Для RHEL/CentOS
sudo yum install cron
# Для Fedora
sudo dnf install cronie

После установки запустите и включите сервис:

sudo systemctl start cron
sudo systemctl enable cron
sudo systemctl status cron

Шаг 2: Редактирование таблицы crontab

Откройте таблицу для редактирования с помощью редактора командной строки:

sudo crontab -e

Добавьте задачу в формате минута час день месяц день_неделе команда. Например, запуск скрипта /home/user/backup.sh каждый день в 02:00:

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

Шаг 3: Создание простой задачи с выводом лога

Чтобы убедиться, что задачи выполняются, создайте тестовый скрипт, например ~/test.sh:

cat > ~/test.sh << 'EOF'
#!/bin/bash
echo "Задача Cron запустилась $(date)" >> ~/cron.log
EOF
chmod +x ~/test.sh

Добавьте вызов скрипта в таблицу crontab:

* * * * * ~/test.sh

Сохраните изменения.

Шаг 4: Проверка списка задач

Проверьте, что задачи добавлены:

crontab -l

Для просмотра всех задач системы (требуются права root):

sudo cat /etc/crontab

Или список из /var/spool/cron/:

sudo ls -l /var/spool/cron

Шаг 5: Устранение распространённых проблем

Если задачи не работают, выполните следующие проверки:

  • Сервис cron работает:
systemctl is-active cron
  • Проверьте логи:
tail -n 20 /var/log/syslog | grep CRON
  • Убедитесь, что скрипты доступны для чтения:
ls -l ~/test.sh
  • Проверьте права на директорию spool:
ls -ld /var/spool/cron

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

* * * * * ~/test.sh >> ~/cron.log 2>&1

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

  1. Подождите одну минуту — новая строка должна появиться в ~/cron.log.
  2. Проверьте журнал cron на наличие записей:
grep "CRON" /var/log/syslog | tail -5
  1. Убедитесь, что служба cron работает:
systemctl status cron

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

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

СимптомПричинаРешение
Задача не запускаетсяСервис cron остановленsudo systemctl start cron
Нет вывода в логеОтсутствие прав на скрипт или директориюchmod +x ~/script.sh и chmod 755 ~/
Ошибка «Permission denied»Запуск от неправильного пользователяИспользуйте sudo -u username в таблице crontab
Задача выполняется в неверное времяОшибки в формате таблицы crontabПроверьте значения минут, часов, дня недели
Лог переполняетсяНет ротации логовДобавьте ротацию логов через logrotate или перенаправьте вывод в файл с ротацией

Если проблема не решена, проверьте системные логи (/var/log/syslog, /var/log/cron) на наличие более подробных сообщений об ошибках.

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

Зачем нужен Cron в Linux?
Как открыть таблицу crontab для редактирования?
Что делать, если задачи Cron не выполняются?
Как планировать задачу на определённый день недели?

Полезное

Установка и запуск службы Cron
Редактирование таблицы crontab
Создание простой задачи с выводом лога
Проверка списка задач
Устранение распространённых проблем