Системный Crontab или Root Crontab

10

Системный crontab:

/etc/crontab

Корневой кронтаб:

sudo crontab -u root -e

Какой способ предпочтительнее? Поскольку все они запускают задачи в рамках полномочий администратора.

Пей Z
источник

Ответы:

15

/etc/crontab это общесистемный crontab.

Формат /etc/crontabтакой:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

Хотя для crontab -eкаждого пользователя стоит упомянуть, без -uаргументов команда crontab переходит к текущему пользователю crontab. Вы можете сделать crontab -e -u <username>для редактирования конкретного пользователя crontab.

Обратите внимание, что в crontab для каждого пользователя нет поля 'user'.

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

Один из аспектов crontabs, который может сбить с толку, заключается в том, что root также имеет свой собственный crontab. Например crontab -e -u root, не будет редактировать /etc/crontab См. Настройка cron .

В дистрибутивах Linux crontabs для каждого пользователя обычно хранятся в: /var/spool/crontabs/<username>

Ссылки

/superuser/290093/difference-between-etc-crontab-and-crontab-e

Рамеш
источник
2
Как говорит Congiruring cron : обычно нет необходимости создавать пользовательский crontab для root. Это правда? Я имею в виду стандартный способ редактирования / etc / crontab, я прав?
Пей Z
2
Не существует «стандартного» способа, поэтому вы можете иметь оба файла. Я обычно редактирую crontab root и избегаю /etc/crontabтолько потому, что привыкcrontab -e
phoops
7

/etc/cron.d (и его братья и сестры cron.daily / weekly / month) предпочтительнее для всех системных crontabs. Вам не нужно трогать / etc / crontab.

Важно разделять записи cron в нескольких файлах, основываясь на их функциональности, если вы планируете управлять или автоматизировать вещи. Файлы в /etc/cron.d могут легко управляться пакетами или инструментами управления конфигурацией, такими как puppet и chef. Crontab рута OTOH практически не поддерживается ничем, кроме людей.

Короче говоря, для системных вещей вы можете использовать /etc/cron.*. Если вы хотите, чтобы пользователь root сделал что-то, используйте crontab. / etc / crontab должен оставаться без изменений и управляться пакетом.

V13
источник