Jaka jest główna różnica między katalogiem cron.d (as in /etc/cron.d/
) a crontab
?
O ile rozumiem, można utworzyć plik podobny do tego /etc/cron.d/my_non_crontab_cronjobs
i umieścić w nim wszystko, co się chce, tak jak można to zrobić crontab
za pośrednictwem crontab -e
.
Jaka jest główna różnica między nimi?
crontab
.Odpowiedzi:
Różnice są szczegółowo opisane na stronie
cron(8)
podręcznika Debiana. Główną różnicą jest to, że/etc/cron.d
są zapełniane osobnymi plikami, podczas gdycrontab
zarządza jednym plikiem na użytkownika; dzięki temu łatwiej jest zarządzać zawartością/etc/cron.d
skryptów (w przypadku automatycznej instalacji i aktualizacji) oraz łatwiej zarządzaćcrontab
za pomocą edytora (naprawdę dla użytkowników końcowych).Inne ważne różnice polegają na tym, że nie wszystkie wersje obsługują
/etc/cron.d
i że pliki/etc/cron.d
muszą spełniać pewną liczbę wymagań (poza ważnymi zadaniami cron): muszą być własnością użytkownika root i muszą być zgodne zrun-parts
konwencjami nazewnictwa ( bez kropek , tylko litery, cyfry, podkreślenia i łączniki).Jeśli rozważasz użyciu
/etc/cron.d
, to zwykle warto rozważyć jeden/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
, lub/etc/cron.monthly
zamiast.źródło
cron.d
są zwykle dodawane podczas instalacji pakietu, podczas gdy różnecrontab
pliki są pełne rzeczy utworzonych przez odpowiedniego użytkownika. IE, pakietcertbot
lubletsencrypt
wstawia wpiscron.d
- zanim pakiet był dostępny, sysadmin (root) dodałby wpis u użytkownika rootcrontab
wskazujący na skrypt powłoki / etc. w celu zapewnienia aktualności certyfikatów.(8)
anacron
.hourly|daily|weekly|monthly
katalogów jest to, że (AFAICT) zawsze działają jako root i nie obsługują bezpośrednio uruchamiania z mniejszymi uprawnieniami.Powiedziałbym, że główna różnica jest oczywista:
/etc/crontab
i/etc/cron.d
nie są modyfikowalni przez zwykłych użytkowników, podczas gdy użytkownicy określają/var/spool/cron
to, cocrontab
edytuje narzędzie. (Z zastrzeżeniemcron.allow
icron.deny
oczywiście.) Oczywiście w systemie, w którym jesteś administratorem, możesz użyć jednego z nich. W systemie współdzielonym zwykli użytkownicy mogą używać tylko jednego.Związane jest to z dodatkowym polem w plikach systemowych, nazwą użytkownika, pod którą działa zadanie.
źródło