RHEL / CentOS esegue tutti i file cronjob in /etc/cron.d/* o solo alcuni di essi?


19

Questo è un sistema Red Hat Enterprise Linux 5 (RHEL). Gestiamo questo sistema usando CFengine.

Abbiamo diversi cronjob che funzionano due volte più spesso del solito. Ho controllato i cronjob sotto /etc/cron.d/e questa directory contiene lo script effettivo chiamato host-backupe contiene anche un file di backup cfengine chiamato host-backup.cfsaved, in questo modo:

/etc/cron.d/host-backup
/etc/cron.d/host-backup.cfsaved

Questo sistema operativo esegue tutti i file /etc/cron.d/*o esegue solo i file che corrispondono a un determinato modello. Posso configurarlo e dove viene definito?

Non riesco a trovare questa risposta nella documentazione RHEL o CentOS.

Risposte:


20

(Se stai pagando per il supporto di Red Hat, dovresti porre loro questo tipo di domande. Questo è esattamente ciò per cui stai pagando!)

Dalla pagina man RHEL5crontab(5) :

Se esiste, la /etc/cron.d/directory viene analizzata come la directory di spool cron, tranne per il fatto che i file in essa contenuti non sono specifici dell'utente e pertanto vengono letti con la /etc/crontabsintassi (l'utente viene specificato esplicitamente nella sesta colonna).

(Esiste un modo più semplice di leggere le pagine man di RHEL senza accedervi? Almeno in questo modo ho potuto vedere che questo paragrafo fa parte della patch di Red Hat, quindi non è una funzionalità standard di Vixie Cron 4.1.)

Guardando alla fonte, vedo che i seguenti file vengono ignorati: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Quindi sì, i tuoi *.cfsavedfile vengono letti oltre agli originali.


Ciao Giles, grazie ho trovato la stessa sintassi di vixie-cron-4.1-77.el5_4.1.src.rpm. Ironia della sorte, questo testo NON è incluso in nessuna delle pagine man di cron e non è incluso in alcun file di testo sul sistema. Non sono sicuro del perché, ma è un argomento per un'altra discussione.
Stefan Lasiewski,

E ho pubblicato una domanda di follow-up su unix.stackexchange.com/questions/4815
Stefan Lasiewski il

@Giles: hai vinto. La fonte RedHat dovrebbe contenere la risposta definitiva. In questo caso, (l'origine sembra differire dai file installati) [unix.stackexchange.com/questions/4815], ma questo è un argomento diverso.
Stefan Lasiewski,

6

Ecco la risposta dal supporto RedHat:

Si informa che tutti i file nella directory cron.d vengono esaminati ed eseguiti, è fondamentalmente un'estensione del file / etc / crontab (cioè lo stesso effetto se si aggiungono le voci al file / etc / crontab)

Quindi, per rispondere alla mia domanda "Questo sistema operativo esegue tutti i file su /etc/cron.d/* o esegue solo i file che corrispondono a un determinato modello. Posso configurarlo e dove viene definito?"

Tutti i file in /etc/cron.d/* vengono eseguiti (anche se sembra che determinate estensioni come .rpmsave, * ~, ecc. Vengano ignorate, secondo la documentazione nei file di origine). Non è possibile configurarlo tramite un file di configurazione. La configurazione di questo è probabilmente possibile se l'origine viene ricompilata. Questo comportamento è menzionato nella documentazione contenuta nella fonte, ma non appare in nessun manuale o pagina di manuale che trovo.


5

Penso che il motivo per cui hai avuto difficoltà a rintracciare la risposta sia che non sia una domanda specifica per Red Hat. Il problema che stai riscontrando fa parte della funzionalità standard di cron: ogni file nella directory che identifichi viene automaticamente trattato come un lavoro separato .

Quindi, la risposta breve alla tua domanda è "sì, tutti i file vengono eseguiti". Questo non è qualcosa che penso possa essere configurato.


2
Esistono diverse implementazioni di cron. Debian e Ubuntu vengono forniti con Vixie Cron (3.0) e la gestione di cron.dè descritta nella sua pagina man . RHEL viene fornito con ISC cron 4.1 (un fork dello stesso progetto) e la pagina man (almeno su CentOS ) non menziona cron.d.
Gilles 'SO- smetti di essere malvagio' il

1
@Gilles: grazie per i suggerimenti. Sto usando Fedora, che ha installato Cronie (anche un fork di Vixie / ISC Cron). La pagina man menziona /etc/cron.dcome uno dei percorsi di ricerca. Mi scuso se non ci sono abbastanza dettagli nella mia risposta - sono ragionevolmente sicuro che questo dovrebbe valere anche per Red Hat. Per favore fatemi sapere se non è così
mlschechter l'

1
Dopo averci esaminato, questa è precisamente una domanda specifica per Red Hat (vedi la mia risposta). È così specifico per Red Hat che anche CentOS è diverso e anche Fedora è probabilmente diverso (ma non ho controllato).
Gilles 'SO- smetti di essere malvagio' l'

1
@Gilles - scusa per il ritardo nella risposta. A partire da Red Hat EL 5 , Red Hat utilizza vixie-cron. RHEL 6 utilizza cronie. Dopo aver esaminato la documentazione di RHEL 5, penso che confermi la mia conclusione originale (se non fornita in modo errato). Ancora una volta, grazie per tutto l'aiuto per scavare per questo.
mlschechter,
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.