Führt RHEL / CentOS alle Cronjob-Dateien unter /etc/cron.d/* oder nur einige davon aus?

19

Dies ist ein Red Hat Enterprise Linux 5-System (RHEL). Wir verwalten dieses System mit CFengine.

Wir haben mehrere Cronjobs, die doppelt so oft laufen wie üblich. Ich habe die Cronjobs unter überprüft /etc/cron.d/und dieses Verzeichnis enthält das eigentliche aufgerufene Skript host-backupsowie eine aufgerufene Cfengine-Sicherungsdatei host-backup.cfsaved, wie folgt :

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

Führt dieses Betriebssystem alle Dateien unter aus /etc/cron.d/*oder führt es nur Dateien aus, die einem bestimmten Muster entsprechen. Kann ich das konfigurieren und wo ist das definiert?

Ich kann diese Antwort nicht in der RHEL- oder CentOS-Dokumentation finden.

Stefan Lasiewski
quelle

Antworten:

19

(Wenn Sie für Red Hat Support bezahlen, sollten Sie ihnen diese Art von Fragen stellen. Genau dafür bezahlen Sie!)

Aus der RHEL5- crontab(5)Manpage :

Wenn es existiert, wird das /etc/cron.d/Verzeichnis wie das Cron-Spool-Verzeichnis analysiert, außer dass die darin enthaltenen Dateien nicht benutzerspezifisch sind und daher mit /etc/crontabSyntax gelesen werden (der Benutzer wird explizit in der 6. Spalte angegeben).

(Gibt es eine einfachere Möglichkeit, RHEL-Manpages zu lesen, ohne Zugriff darauf zu haben? Zumindest konnte ich auf diese Weise feststellen, dass dieser Absatz Teil des Red Hat-Patches ist, sodass es sich nicht um eine Standardfunktion von Vixie Cron 4.1 handelt.)

Mit Blick auf die Quelle, sehe ich , dass die folgenden Dateien sind übersprungenen: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Also ja, Ihre *.cfsavedDateien werden zusätzlich zu den Originalen gelesen.

Gilles 'SO - hör auf böse zu sein'
quelle
Hallo Giles, danke, ich habe genau die gleiche Syntax gefunden vixie-cron-4.1-77.el5_4.1.src.rpm. Ironischerweise ist dieser Text NICHT in einer der Manpages für cron enthalten und nicht in einer Textdatei auf dem System enthalten. Ich bin mir nicht sicher, warum das so ist, aber es ist ein Thema für eine andere Diskussion.
Stefan Lasiewski
Und ich habe eine Folgefrage unter unix.stackexchange.com/questions/4815
Stefan Lasiewski 13.12.10
@Giles: Du gewinnst. Die RedHat-Quelle sollte die endgültige Antwort enthalten. In diesem Fall (die Quelle scheint sich von den installierten Dateien zu unterscheiden) [unix.stackexchange.com/questions/4815], aber das ist ein anderes Thema.
Stefan Lasiewski
6

Hier ist die Antwort vom RedHat-Support:

Bitte beachten Sie, dass alle Dateien im Verzeichnis cron.d überprüft und ausgeführt werden. Dies ist im Grunde eine Erweiterung der Datei / etc / crontab (dh derselbe Effekt, wenn Sie die Einträge zur Datei / etc / crontab hinzufügen).

Um meine Frage zu beantworten: "Führt dieses Betriebssystem alle Dateien unter /etc/cron.d/* aus oder führt es nur Dateien aus, die einem bestimmten Muster entsprechen. Kann ich dies konfigurieren und wo ist dies definiert?"

Alle Dateien unter /etc/cron.d/* werden ausgeführt (obwohl bestimmte Dateierweiterungen wie .rpmsave, * ~ usw. laut Dokumentation in den Quelldateien anscheinend ignoriert werden). Es ist nicht möglich, dies über eine Konfigurationsdatei zu konfigurieren. Dies zu konfigurieren ist wahrscheinlich möglich, wenn die Quelle neu kompiliert wird. Dieses Verhalten wird in der Dokumentation der Quelle erwähnt, jedoch nicht in den Handbüchern oder Manpages aufgeführt, die ich finden kann.

Stefan Lasiewski
quelle
5

Ich denke, der Grund, warum Sie Schwierigkeiten hatten, die Antwort zu finden, ist, dass es sich nicht um eine Red Hat-spezifische Frage handelt. Das Problem, das Sie sehen, ist Teil der Standardfunktionalität von cron- Jede Datei in dem von Ihnen angegebenen Verzeichnis wird automatisch als separater Job behandelt .

Die kurze Antwort auf Ihre Frage lautet also "Ja, alle Dateien werden ausgeführt". Ich denke nicht, dass dies konfiguriert werden kann.

mlschechter
quelle
2
Es gibt verschiedene Implementierungen von Cron. Debian und Ubuntu werden mit Vixie Cron (3.0) ausgeliefert, und die Handhabung cron.dist in seiner Manpage beschrieben . RHEL wird mit ISC cron 4.1 (einer Abzweigung desselben Projekts) ausgeliefert, und die Manpage (zumindest unter CentOS ) erwähnt dies nicht cron.d.
Gilles 'SO- hör auf böse zu sein'
1
@ Gilles: Danke für die Hinweise. Ich benutze Fedora, auf dem Cronie installiert ist (auch eine Gabel von Vixie / ISC Cron). Die Manpage nennt /etc/cron.deinen der Suchpfade. Ich entschuldige mich, wenn meine Antwort nicht detailliert genug war - ich bin mir ziemlich sicher, dass dies auch für Red Hat gelten sollte. Bitte lassen Sie mich wissen, wenn dies nicht der Fall ist
mlschechter
1
Dies ist genau eine Red Hat-spezifische Frage (siehe meine Antwort). Es ist so Red Hat-spezifisch, dass sogar CentOS anders ist und Fedora wahrscheinlich auch anders (aber ich habe es nicht überprüft).
Gilles 'SO- hör auf böse zu sein'
1
@ Gilles - Entschuldigung für die Verzögerung bei der Beantwortung. Ab Red Hat EL 5 verwendet Red Hat Vixie-Cron. RHEL 6 verwendet cronie. Nach Durchsicht der RHEL 5-Dokumentation glaube ich, dass sie meine ursprüngliche Schlussfolgerung (falls diese nicht korrekt ist) bestätigt. Nochmals vielen Dank für die Hilfe beim Graben.
mlschechter