Яка різниця між cron.d (як у /etc/cron.d/) та crontab?


18

Яка основна відмінність між каталогом cron.d (як в /etc/cron.d/) і crontab?

Наскільки я розумію, можна створити файл , як /etc/cron.d/my_non_crontab_cronjobsі покласти все , що хочеться в ньому, так само , як можна було б помістити їх в crontabчерез crontab -e.

То в чому головна відмінність між ними?


розташування в системі та формат.
Rui F Ribeiro

Формат? З двох прикладів, які я бачив, він також має синтаксис 5 одиниць часу, або я його плутаю crontab.
Arcticooling

Відповіді:


24

Різниці детально задокументовані на сторінціcron(8) в Debian. Основна відмінність полягає в тому, що /etc/cron.dвін заповнюється окремими файлами, тоді як crontabкерує одним файлом на користувача; Таким чином, простіше керувати вмістом /etc/cron.dвикористання сценаріїв (для автоматизованої установки та оновлень), а також легше керувати crontabза допомогою редактора (справді для кінцевих користувачів).

Інші важливі відмінності полягають у тому, що не всі дистрибутиви підтримують /etc/cron.d, і що файли /etc/cron.dповинні відповідати певній кількості вимог (крім дійсних cron завдань): вони повинні володіти коренем і повинні відповідати умовам run-partsіменування ( немає крапок , лише літери, цифри, підкреслення та дефіси).

Якщо ви плануєте використовувати /etc/cron.d, це, як правило , варто розглянути один з /etc/cron.hourly, /etc/cron.daily, /etc/cron.weeklyабо /etc/cron.monthlyзамість цього.


1
А для прикладу в реальному світі елементи в cron.d, як правило, додаються через встановлення пакету, тоді як різні crontabфайли наповнені речами, створеними відповідним користувачем. IE, certbotабо letsencryptпакунок вносить запис cron.d- перед тим, як пакет був доступний, sysadmin (root) додасть запис у користувачеві root, crontabвказуючи на сценарій оболонки / тощо. щоб постійно оновлювати сертифікати.
іваніван

Дякую Стівен! Чому ви рекомендуєте використовувати каталоги щогодини / щотижня / щомісяця? І BTW, чому там man page називається cron (8), що таке 8 для (man man для crontab з назвою crontab (1)).
Arcticooling

1
@Arcticooling, дивіться це запитання для пояснення(8)
user4556274

Щогодинні тощо каталоги спрощують додавання завдань (не потрібно з'ясовувати точний синтаксис), і що ще важливіше, дозволяють системі змінювати реальний час виконання залежно від обставин; це особливо корисно для систем, які не завжди вмикаються anacron.
Стівен Кітт

1
Мінус hourly|daily|weekly|monthlyкаталогів полягає в тому, що вони (AFAICT) завжди працюють як корінь і не підтримують безпосередньо роботу з меншими привілеями.
ilkkachu

5

Я б сказав , що основною відмінністю є очевидним: /etc/crontabі /etc/cron.dне можуть бути змінені з допомогою звичайних користувачів, в той час як для кожного користувача crontabs в /var/spool/cronтому , що crontabправки інструменту, є. (З урахуванням cron.allowта cron.deny, звичайно,.) Звичайно, у системі, де ви адміністратор, ви можете використовувати будь-яку. У спільній системі постійні користувачі можуть використовувати лише одну.

З цим пов'язано додаткове поле у ​​файлах загальної системи, ім'я користувача, під яким виконується завдання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.