LinuxСредняя

Ошибка 'crontab: command not found' в Linux — как исправить

Статья объясняет, почему в Linux возникает ошибка 'crontab: command not found', и предоставляет проверенные способы её решения — от установки пакета cron до проверки переменной PATH.

Обновлено 15 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04/22.04/24.04Debian 11/12CentOS 7/8/Rocky 8/9Fedora 35+

Что означает ошибка 'crontab: command not found'

Ошибка crontab: command not found (или bash: crontab: command not found) возникает, когда вы пытаетесь выполнить команду crontab в терминале Linux, но система не может найти её исполняемый файл.

Это означает, что пакет cron (или cronie, vixie-cron) не установлен в вашей системе, либо установлен, но его бинарный файл (/usr/bin/crontab) отсутствует в переменной окружения PATH.

Ошибка обычно появляется при попытке:

  • Просмотреть текущие задачи: crontab -l
  • Отредактировать список задач: crontab -e
  • Установить задачи для другого пользователя: crontab -u username -e

Причины возникновения

  1. Пакет cron не установлен. Это самая частая причина. Минимальные или специализированные установки Linux (например, некоторые Docker-образы, облачные инстансы) часто поставляются без планировщика задач по умолчанию.
  2. Пакет cron установлен, но crontab отсутствует в PATH. Возможно, пакет установлен в нестандартный путь, или переменная PATH пользователя была изменена и больше не включает директорию /usr/bin.
  3. Пакет cron установлен некорректно или повреждён. Файл /usr/bin/crontab мог быть случайно удалён или повреждён.
  4. Система использует альтернативную реализацию cron. Некоторые дистрибутивы используют пакеты с другими именами (например, cronie), которые также предоставляют команду crontab, но могут иметь особенности установки.
  5. Вы работаете в ограниченной среде. Например, в chroot-окружении или контейнере, где базовые пакеты не установлены.

Способы решения

Способ 1: Установка пакета cron (решение для 95% случаев)

Это основное и самое простое решение. Установите демон cron с помощью пакетного менеджера вашего дистрибутива.

Для Debian / Ubuntu и производных:

sudo apt update
sudo apt install cron

Для RHEL / CentOS / Rocky Linux / AlmaLinux (7 и выше):

# Для CentOS 7 / RHEL 7
sudo yum install cronie

# Для CentOS 8+ / RHEL 8+ / Rocky/Alma 8+
sudo dnf install cronie

Примечание: В RHEL-семействе основной пакет обычно называется cronie.

Для Fedora:

sudo dnf install cronie

Для Arch Linux:

sudo pacman -S cronie

После установки проверьте наличие команды:

which crontab
# Ожидаемый вывод: /usr/bin/crontab

💡 Совет: В некоторых минимальных установках (особенно в контейнерах) пакет cron может быть установлен, но служба по умолчанию не запущена. После установки запустите и включите её:

sudo systemctl enable --now cron   # Для Debian/Ubuntu (служба `cron`)
sudo systemctl enable --now crond  # Для RHEL/CentOS/Fedora (служба `crond`)

Способ 2: Проверка и исправление переменной PATH

Если пакет cron уже установлен (dpkg -l cron или rpm -qa | grep cron), но команда crontab не находится, проблема в PATH.

  1. Найдите полный путь к crontab вручную:
    find /usr -name crontab 2>/dev/null
    # Обычно путь: /usr/bin/crontab
    
  2. Временно добавьте путь в PATH для текущей сессии:
    export PATH=$PATH:/usr/bin
    crontab -l  # Проверьте, работает ли команда
    
  3. Внесение изменений в конфигурацию оболочки (постоянное решение): Откройте файл конфигурации вашей оболочки (обычно ~/.bashrc, ~/.bash_profile или ~/.zshrc для Zsh) и добавьте строку:
    export PATH="$PATH:/usr/bin"
    

    Затем примените изменения:
    source ~/.bashrc  # или source ~/.zshrc
    

Способ 3: Проверка и запуск службы cron

Иногда пакет установлен, но служба cron/crond не запущена, что может вызывать побочные проблемы.

  1. Проверьте статус службы:
    systemctl status cron   # Для Debian/Ubuntu
    systemctl status crond  # Для RHEL/CentOS/Fedora
    
  2. Если служба неактивна, запустите и включите автозапуск:
    sudo systemctl start cron   # или crond
    sudo systemctl enable cron  # или crond
    

Способ 4: Переустановка пакета cron

Если пакет установлен, но файл crontab повреждён или отсутствует, переустановите его.

Для Debian/Ubuntu:

sudo apt --reinstall install cron

Для RHEL/CentOS/Fedora:

sudo dnf reinstall cronie

Способ 5: Использование полного пути (временное решение)

Если вы не хотите или не можете менять PATH, используйте полный путь к исполняемому файлу:

/usr/bin/crontab -l
/usr/bin/crontab -e

Это временное решение для конкретных команд, но неудобно для повседневного использования.


Профилактика

  • Проверяйте наличие cron при настройке новых серверов/виртуальных машин. Включите установку cron в ваш скрипт инициализации (например, в cloud-init или Ansible-плейбук).
  • Не удаляйте системные пакеты вручную. Удаляйте пакеты только через менеджер пакетов (apt remove, dnf remove), чтобы избежать "осиротевших" файлов и проблем с зависимостями.
  • Будьте осторожны при редактировании PATH. Всегда проверяйте синтаксис в ~/.bashrc или ~/.profile. Ошибка в этих файлах может привести к тому, что никакие команды не будут находиться.
  • Используйте абсолютные пути в системных скриптах. Если вы пишете скрипт, который будет запускаться через cron, используйте полные пути к исполняемым файлам и ресурсам внутри скрипта, так как среда cron имеет очень минимальный PATH (обычно /usr/bin:/bin).

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

Почему возникает ошибка 'crontab: command not found', если я только что установил cron?
Можно ли использовать планировщик задач без пакета cron?
Как проверить, установлен ли пакет cron в моей системе?

Полезное

Определите дистрибутив и установите пакет cron
Проверьте установку команды crontab
Убедитесь, что служба cron запущена
Проверьте переменную окружения PATH
Перезагрузите оболочку или сеанс

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