Руководства по Cron
Руководства

Редактирование crontab и переменные среды: PATH, оболочка, пользователь

crontab -e · различия среды · системный vs пользовательский crontab

Задачи обычно редактируют через crontab -e. Эта команда открывает crontab только текущего пользователя, а при сохранении проверяет синтаксис и применяет изменения. Список выводится командой crontab -l, полное удаление — crontab -r, но -r удаляет без подтверждения, поэтому будьте осторожны.

Среда, в которой cron выполняет задачи, отличается от оболочки, в которую вы вошли. cron предоставляет лишь минимальную среду, и PATH тоже обычно короткий, вроде /usr/bin:/bin. Поэтому команда, работавшая в вашей login-оболочке, в cron нередко завершается ошибкой «команда не найдена». Безопаснее указывать команды абсолютными путями.

В начале файла crontab можно объявить переменные среды. Часто используют PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/bash, MAILTO="you@example.com", а также CRON_TZ=Asia/Seoul, фиксирующий часовой пояс. Если в значении есть пробелы, заключите его в кавычки.

Формат пользовательского и системного crontab различается. Пользовательский crontab, созданный через crontab -e, — это стандартные 5 полей (минута час день месяц день недели). А системные записи в /etc/crontab и /etc/cron.d/* — это 6 полей (минута час день месяц день недели user команда), где после дня недели добавлено поле пользователя, от имени которого выполняется задача. Этот инструмент разбирает стандартные 5 полей, поэтому при проверке системного crontab уберите поле пользователя и вводите только первые 5 полей.

Если вместо точного времени достаточно уровня «ежедневно / ежечасно», можно просто положить скрипт в drop-in каталоги вроде /etc/cron.daily, /etc/cron.hourly. Они выполняются с заданной периодичностью без выражения. А выражение, составленное этим инструментом, добавляйте в crontab только тогда, когда нужны конкретные минута и время, — и управление станет аккуратнее.

Ресурсы

Готовые расписания

Готовые рецепты для копирования

Шпаргалка по синтаксису

5 полей и специальные символы с первого взгляда

Макросы и псевдонимы

Сокращённые выражения вроде @daily

Руководства

Практические руководства, чтобы разобраться в cron и меньше ошибаться