Почему crontab -e отличается от менее / etc / crontab?
11
Я довольно новичок в Unix и Crons, в настоящее время я собирался добавить Cron в существующий файл Cron. Я читал, вы могли бы сделать это с crontab -e. Меня сбивает с толку то, что crontab -eпоказывает разные кроны / команды, чем less /etc/crontab- как получилось? Какой правильный путь / файл для редактирования?
Хотя ответ @X Tian содержит информацию о различных файлах для crontab, важная информация относительно вашего вопроса такова:
crontab -eредактирует файл crontab пользователя (хранится в /var/spool/cron/crontabs/каталоге на текущих системах Debian, но YMMV) или создает новый, а не /etc/crontab. Аналогично для crontab -l(перечислить файл crontab) и crontab -r(удалить файл crontab).
Для всех заданий cron, которые должны выполняться под учетной записью пользователя, вы должны использовать crontab -e. Для системных заданий вы должны добавить файл /etc/cron.d, если он существует; под /etc/cron.{hourly|daily|weekly|monthly}(но они не должны называться как имя пакета!), если это соответствует вашей цели; или добавьте строку в /etc/crontab. Но учтите, что это /etc/crontabможет быть перезаписано обновлением системы.
@Stephane Chazelas Спасибо за разъяснения с вашей правкой. /var/spool/cron/Каталог специальность Linux (см File Hierarchy Standard ) и расположение может отличаться по отличным от текущей Debian систем.
Dubu
3
Вы действительно хотите прочитать справочные страницы man cronиman crontab
Вот выдержка, которая охватывает ваш вопрос. Отman cron
ЗАМЕЧАНИЯ: cron ищет в своей области спула (/ var / spool / cron / crontabs) файлы crontab (которые названы в честь учетных записей в / etc / passwd); Найденные crontabs загружаются в память. Обратите внимание, что к crontabs в этом каталоге нельзя обращаться напрямую - для доступа к ним и их обновления должна использоваться команда crontab.
cron also reads /etc/crontab, which is in a slightly different format
(see crontab(5)). Additionally, cron reads the files in /etc/cron.d:
it treats the files in /etc/cron.d as in the same way as the
/etc/crontab file (they follow the special format of that file, i.e.
they include the user field). However, they are independent of
/etc/crontab: they do not, for example, inherit environment variable
settings from it. The intended purpose of this feature is to allow
packages that require finer control of their scheduling than the
/etc/cron.{daily,weekly,monthly} directories to add a crontab file to
/etc/cron.d. Such files should be named after the package that supplies
them. Files must conform to the same naming convention as used by run-
parts(8): they must consist solely of upper- and lower-case letters,
digits, underscores, and hyphens. If the -l option is specified, then
they must conform to the LSB namespace specification, exactly as in the
--lsbsysinit option in run-parts.
Вы должны указать, какую реализацию cron и какую версию для какой ОС и какую версию вы цитируете. cronэто то, что сильно варьируется от ОС к ОС, и в некоторых вы можете выбирать между несколькими реализациями.
/var/spool/cron/
Каталог специальность Linux (см File Hierarchy Standard ) и расположение может отличаться по отличным от текущей Debian систем.Вы действительно хотите прочитать справочные страницы
man cron
иman crontab
Вот выдержка, которая охватывает ваш вопрос. От
man cron
источник
cron
это то, что сильно варьируется от ОС к ОС, и в некоторых вы можете выбирать между несколькими реализациями.