Qual è la differenza tra cron.d (come in /etc/cron.d/) e crontab?


18

Qual è la differenza principale tra la directory cron.d (come in /etc/cron.d/) e crontab?

Per quanto ho capito, si potrebbe creare un file simile /etc/cron.d/my_non_crontab_cronjobse mettere tutto ciò che si desidera al suo interno, proprio come li inseriresti crontabvia crontab -e.

Quindi qual è la differenza principale tra i due?


posizione nel sistema e formato.
Rui F Ribeiro,

Formato? Da 2 esempi che ho visto ha anche la sintassi di 5 unità di tempo, o la confondo crontab.
Arcticooling,

Risposte:


24

Le differenze sono documentati in dettaglio nella cron(8)pagina man in Debian. La differenza principale è che /etc/cron.dviene popolata con file separati, mentre crontabgestisce un file per utente; è quindi più facile gestire il contenuto /etc/cron.ddell'uso degli script (per l'installazione e gli aggiornamenti automatizzati) e più facile da gestire crontabutilizzando un editor (per gli utenti finali davvero).

Altre differenze importanti sono che non tutte le distribuzioni supportano /etc/cron.de che i file /etc/cron.ddevono soddisfare un certo numero di requisiti (oltre ad essere cron job validi): devono essere di proprietà di root e devono conformarsi alle run-partsconvenzioni di denominazione ( nessun punto , solo lettere, cifre, trattini bassi e trattini).

Se state pensando di utilizzare /etc/cron.d, di solito è opportuno prendere in considerazione uno dei /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, o /etc/cron.monthly, invece.


1
E per un esempio reale, gli elementi in cron.dvengono generalmente aggiunti tramite l'installazione del pacchetto, mentre i vari crontabfile sono pieni di cose create da un utente corrispondente. Ad esempio, il pacchetto certboto letsencryptinserisce una voce cron.d- prima che il pacchetto fosse disponibile, l'amministratore di sistema (root) aggiungerebbe una voce dell'utente root che crontabpunta a uno script di shell / ecc. per mantenere aggiornati i certificati.
Ivanivan,

Grazie Stefano! Perché mi consiglia di utilizzare le directory cron orarie / settimanali / mensili? E a proposito, perché la pagina man lì si chiama cron (8) a cosa serve l'8 (la pagina man per crontab chiamata crontab (1)).
Arcticooling,

1
@Arcticooling, vedi questa domanda per una spiegazione del(8)
user4556274

Le directory orarie ecc. Rendono più semplice l'aggiunta di lavori (non è necessario capire l'esatta sintassi) e, cosa più importante, consentono al sistema di variare il tempo di esecuzione reale a seconda delle circostanze; questo è particolarmente utile su sistemi che non sono sempre attivi, con anacron.
Stephen Kitt,

1
L' hourly|daily|weekly|monthlyaspetto negativo delle directory è che (AFAICT), funzionano sempre come root e non supportano direttamente l'esecuzione con privilegi minori.
ilkkachu,

5

Direi che la differenza principale è ovvia: /etc/crontabe /etc/cron.dnon sono modificabili dagli utenti normali, mentre i crontab per utente in /var/spool/cronquanto le crontabmodifiche degli strumenti lo sono. (Soggetto a cron.allowe cron.deny, ovviamente.) Naturalmente su un sistema in cui sei l'amministratore, puoi usare entrambi. Su un sistema condiviso, gli utenti normali possono utilizzarne solo uno.

A questo si collega il campo aggiuntivo nei file di sistema, il nome utente in cui viene eseguito il lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.