Назад | Перейти на главную страницу

Включить файл в конфигурацию crontab?

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

Можно ли включать файлы в конфиг crontab? Что-то вроде

* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'

В зависимости от вашего демона cron и вашего дистрибутива в / etc должно быть несколько каталогов, куда вы можете помещать файлы с заданиями для cron.

Скрипты (не заданные в формате cron), размещенные в следующих каталогах, будут выполняться через указанные интервалы. Обратите внимание, что частота гарантировано, но точное время пробега может и не быть. Для большинства пользователей этих каталогов достаточно:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

Задания в формате cron (например, приведенные выше примеры), помещенные в следующий каталог, будут выполняться cron в указанное время. Обратите внимание, что в дополнение к обычным записям перед командой необходимо указать пользователя задания. Для пакетов и дистрибутивов программного обеспечения этот метод является лучшим способом распространения cronjobs:

/etc/cron.d

Пример команды в формате cron.d:

1 1 * * * root echo "serverfault is awesome" > /dev/null

Насколько я знаю, нет; это то что /etc/cron.d для.

Как указал Боско, есть также /etc/cron.{hourly,daily,weekly,monthly} каталоги, но задания в них могут выполняться только с правами root (если вы явно не используете /bin/su для изменения EUID). Вакансии в /etc/cron.d есть дополнительное поле, в котором указывается пользователь, от имени которого они работают, и способ, которым ваш вопрос содержит /home/user path заставляет меня думать, что вы хотите, чтобы эти задания могли выполняться как произвольные пользователи.