Разница между / etc / crontab и «crontab -e»


42

В чем разница между crontab, расположенным в, /etc/crontabи crontab, который можно редактировать с помощью crontab -e?

Ответы:


51

Как сказал Игнасио, /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/cron/crontabs/<username>(vixie-cron).

Распределения на основе RHEL хранятся в /var/spool/cron/<username>. (cronie)


К вашему сведению, указанный выше путь неверен: пользовательские crontabs хранятся в / var / spool / cron / crontabs / <username> (я дважды пытался представить это простое исправление.)
MartyMacGyver

1
... и это исправлено сейчас.
MartyMacGyver

На самом деле, он хранится в /var/spool/cron/rootcrontab для каждого пользователя root в системе RHEL 6. Не проверял Ubuntu, но сказать «типично» кажется немного натянутым.
Wildcard

@Wildcard Я думаю, что «типично» - это правильное слово. RHEL distro ship w / "cronie" (и, я полагаю, anacron), который является их форком ISC-Cron / vixie cron. Я не думаю, что это натянуто, в любом случае я обновил свой ответ, чтобы включить больше деталей.
Skrewler

Для быстрого поиска путей в дистрибутивах найдите строку path[crontabs]в библиотеке «paths» CFEngine и проверьте контекст (предыдущие строки контекста выглядят, например, как redhat::). Там больше вариаций, чем вы думаете; например, SUSE вставляет их /var/spool/cron/tabs. (Абстрагирование различий в дистрибутивах - одна из причин, по которой CFEngine был изначально создан, поэтому он часто является хорошим справочным материалом.)
Wildcard

5

Один из них является системным crontab и может редактироваться только пользователем root, а другой является пользовательским crontab и может быть отредактирован пользователем и существует для каждого пользователя.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.