RHEL / CentOS exécute-t-il tous les fichiers cronjob sous /etc/cron.d/*, ou seulement certains d'entre eux?

19

Il s'agit d'un système Red Hat Enterprise Linux 5 (RHEL). Nous gérons ce système à l'aide de CFengine.

Nous avons plusieurs cronjobs qui fonctionnent deux fois plus souvent que d'habitude. J'ai vérifié les cronjobs sous /etc/cron.d/et ce répertoire contient le script réel appelé host-backup, et contient également un fichier de sauvegarde cfengine appelé host-backup.cfsaved, comme suit :

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

Ce système d'exploitation exécute-t-il tous les fichiers à /etc/cron.d/*, ou n'exécute-t-il que les fichiers qui correspondent à un certain modèle. Puis-je configurer cela, et où est-ce défini?

Je ne trouve pas cette réponse dans la documentation RHEL ou CentOS.

Stefan Lasiewski
la source

Réponses:

20

(Si vous payez pour le support Red Hat, vous devriez leur poser ce genre de questions. C'est exactement ce que vous payez!)

Depuis la crontab(5)page de manuel RHEL5 :

S'il existe, le /etc/cron.d/répertoire est analysé comme le répertoire spon cron, sauf que les fichiers qu'il contient ne sont pas spécifiques à l'utilisateur et sont donc lus avec la /etc/crontabsyntaxe (l'utilisateur est spécifié explicitement dans la 6e colonne).

(Existe-t-il un moyen plus simple de lire les pages de manuel RHEL sans y avoir accès? Au moins de cette façon, je pouvais voir que ce paragraphe faisait partie du patch de Red Hat, donc ce n'est pas une fonctionnalité standard de Vixie Cron 4.1.)

En regardant la source, je vois que les fichiers suivants sont ignorés: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Alors oui, vos *.cfsavedfichiers sont lus en plus des originaux.

Gilles 'SO- arrête d'être méchant'
la source
Salut Giles, merci, j'ai trouvé la même syntaxe exacte de vixie-cron-4.1-77.el5_4.1.src.rpm. Ironiquement, ce texte n'est inclus dans aucune des pages de manuel de cron et n'est inclus dans aucun fichier texte du système. Je ne sais pas pourquoi c'est, mais c'est un sujet pour une autre discussion.
Stefan Lasiewski
Et j'ai posté une question de suivi
Stefan Lasiewski
@Giles: Vous gagnez. La source RedHat devrait contenir la réponse définitive. Dans ce cas, (la source semble différer des fichiers installés) [unix.stackexchange.com/questions/4815], mais c'est un sujet différent.
Stefan Lasiewski
6

Voici la réponse du support RedHat:

Veuillez noter que tous les fichiers du répertoire cron.d sont examinés et exécutés, il s'agit essentiellement d'une extension du fichier / etc / crontab (c'est-à-dire; même effet si vous ajoutez les entrées au fichier / etc / crontab)

Donc, pour répondre à ma question "Ce système d'exploitation exécute-t-il tous les fichiers dans /etc/cron.d/*, ou n'exécute-t-il que les fichiers qui correspondent à un certain modèle. Puis-je le configurer et où est-ce défini?"

Tous les fichiers sous /etc/cron.d/* sont exécutés (bien qu'il semble que certaines extensions de fichiers telles que .rpmsave, * ~, etc. soient ignorées, selon la documentation des fichiers source). Il n'est pas possible de le configurer via un fichier de configuration. La configuration est probablement possible si la source est recompilée. Ce comportement est mentionné dans la documentation fournie avec la source, mais n'apparaît dans aucun manuel ou page de manuel que je puisse trouver.

Stefan Lasiewski
la source
5

Je pense que la raison pour laquelle vous avez eu du mal à trouver la réponse est que ce n'est pas une question spécifique à Red Hat. Le problème que vous voyez fait partie de la fonctionnalité standard de cron- chaque fichier du répertoire que vous identifiez est automatiquement traité comme un travail distinct .

Donc, la réponse courte à votre question est "oui, tous les fichiers sont exécutés". Ce n'est pas quelque chose que je pense qui peut être configuré.

mlschechter
la source
2
Il existe différentes implémentations de cron. Debian et Ubuntu sont livrés avec Vixie Cron (3.0), et la gestion de cron.dest décrite dans sa page de manuel . RHEL est livré avec ISC cron 4.1 (un fork du même projet), et la page de manuel (au moins sur CentOS ) ne mentionne pas cron.d.
Gilles 'SO- arrête d'être méchant'
1
@ Gilles: Merci pour les pointeurs. J'utilise Fedora, sur lequel Cronie est installé (également un fork de Vixie / ISC Cron). La page de manuel mentionne /etc/cron.dcomme étant l'un des chemins de recherche. Je m'excuse s'il n'y avait pas suffisamment de détails dans ma réponse - je suis raisonnablement sûr que cela devrait également s'appliquer à Red Hat. S'il vous plaît laissez-moi savoir si ce n'est pas le cas
mlschechter
1
Après examen, il s'agit précisément d'une question spécifique à Red Hat (voir ma réponse). C'est tellement spécifique à Red Hat que même CentOS est différent, et Fedora est probablement différent aussi (mais je n'ai pas vérifié).
Gilles 'SO- arrête d'être méchant'
1
@Gilles - désolé pour le retard dans la réponse. Depuis Red Hat EL 5 , Red Hat utilise vixie-cron. RHEL 6 utilise cronie. Après avoir examiné la documentation de RHEL 5, je pense qu'elle confirme ma conclusion d'origine (si elle n'est pas fournie correctement). Encore une fois, merci pour toute l'aide à creuser pour cela.
mlschechter