Czy RHEL / CentOS wykonuje wszystkie pliki cronjob pod /etc/cron.d/*, czy tylko niektóre z nich?

19

To jest system Red Hat Enterprise Linux 5 (RHEL). Zarządzamy tym systemem za pomocą CFengine.

Mamy kilka cronjobs, które działają dwa razy częściej niż zwykle. Sprawdziłem cronjobs pod /etc/cron.d/i ten katalog zawiera rzeczywisty skrypt o nazwie host-backup, a także plik kopii zapasowej cfengine o nazwie host-backup.cfsaved, tak jak:

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

Czy ten system operacyjny wykonuje wszystkie pliki /etc/cron.d/*, czy tylko pliki zgodne z określonym wzorcem. Czy mogę to skonfigurować i gdzie to jest zdefiniowane?

Nie mogę znaleźć tej odpowiedzi w dokumentacji RHEL lub CentOS.

Stefan Lasiewski
źródło

Odpowiedzi:

20

(Jeśli płacisz za wsparcie Red Hat, powinieneś zadać im tego rodzaju pytania. Właśnie za to płacisz!)

Od tej RHEL5 crontab(5)strony man :

Jeśli istnieje, /etc/cron.d/katalog jest analizowany jak katalog buforowania cron, z tym wyjątkiem, że pliki w nim nie są specyficzne dla użytkownika i dlatego są odczytywane ze /etc/crontabskładnią (użytkownik jest wyraźnie określony w szóstej kolumnie).

(Czy istnieje prostszy sposób czytania stron podręcznika RHEL bez dostępu do nich? Przynajmniej w ten sposób mogłem zobaczyć, że ten akapit jest częścią poprawki Red Hat, więc nie jest to standardowa funkcja Vixie Cron 4.1).

Patrząc na źródła, widzę, że poniższe pliki są pomijane: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Tak, twoje *.cfsavedpliki są odczytywane oprócz oryginałów.

Gilles „SO- przestań być zły”
źródło
Cześć Giles, dzięki, że znalazłem dokładnie tę samą składnię vixie-cron-4.1-77.el5_4.1.src.rpm. Jak na ironię, ten tekst NIE jest zawarty na żadnej stronie podręcznika systemowego dla crona i nie jest dołączony do żadnego pliku tekstowego w systemie. Nie jestem pewien, dlaczego tak jest, ale to temat na kolejną dyskusję.
Stefan Lasiewski
I zadałem pytanie uzupełniające na unix.stackexchange.com/questions/4815
Stefan Lasiewski,
@Giles: Wygrywasz. Źródło RedHat powinno zawierać ostateczną odpowiedź. W tym przypadku (źródło wydaje się różnić od zainstalowanych plików) [unix.stackexchange.com/questions/4815], ale to inny temat.
Stefan Lasiewski
6

Oto odpowiedź od wsparcia RedHat:

Informujemy, że wszystkie pliki w katalogu cron.d są sprawdzane i wykonywane, jest to zasadniczo rozszerzenie pliku / etc / crontab (tj. Taki sam efekt, jeśli dodasz wpisy do pliku / etc / crontab)

Tak więc, aby odpowiedzieć na moje pytanie „Czy ten system operacyjny wykonuje wszystkie pliki w katalogu /etc/cron.d/*, czy tylko pliki zgodne z określonym wzorcem. Czy mogę to skonfigurować i gdzie to jest zdefiniowane?”

Wszystkie pliki w katalogu /etc/cron.d/* są wykonywane (chociaż wydaje się, że niektóre rozszerzenia plików, takie jak .rpmsave, * ~ itp. Są ignorowane, zgodnie z dokumentacją w plikach źródłowych). Nie można tego skonfigurować za pomocą pliku konfiguracyjnego. Konfiguracja tego jest prawdopodobnie możliwa, jeśli źródło zostanie ponownie skompilowane. To zachowanie jest wspomniane w dokumentacji zawartej ze źródłem, ale nie pojawia się na żadnej stronie podręcznika lub podręcznika użytkownika, którą mogę znaleźć.

Stefan Lasiewski
źródło
5

Myślę, że powód, dla którego miałeś trudności ze znalezieniem odpowiedzi, jest taki, że nie jest to pytanie specyficzne dla Red Hat. Problem, który widzisz, jest częścią standardowej funkcjonalności cron- każdy plik w zidentyfikowanym katalogu jest automatycznie traktowany jako osobne zadanie .

Tak więc krótka odpowiedź na twoje pytanie brzmi: „tak, wszystkie pliki są wykonywane”. Myślę, że nie można tego skonfigurować.

mlschechter
źródło
2
Istnieją różne implementacje crona. Debian i Ubuntu są dostarczane z Vixie Cron (3.0), a obsługa cron.djest opisana na stronie man . RHEL jest dostarczany z ISC cron 4.1 (rozwidlenie tego samego projektu), a strona man (przynajmniej w CentOS ) nie wspomina cron.d.
Gilles „SO- przestań być zły”
1
@Gilles: Dzięki za wskazówki. Korzystam z Fedory, która ma zainstalowaną Cronie (również widelec Vixie / ISC Cron). Strona /etc/cron.dpodręcznika wspomina, że jest jedną ze ścieżek wyszukiwania. Przepraszam, jeśli w mojej odpowiedzi nie było wystarczająco dużo szczegółów - jestem całkiem pewien, że to dotyczy również Red Hata. Daj mi znać, jeśli tak nie jest
mlschechter
1
Po przyjrzeniu się temu pytanie jest dokładnie związane z Red Hat (zobacz moją odpowiedź). Jest tak specyficzny dla Red Hata, że ​​nawet CentOS jest inny, a Fedora też prawdopodobnie jest inna (ale nie sprawdziłem).
Gilles „SO- przestań być zły”
1
@Gilles - przepraszam za opóźnienie w odpowiedzi. Począwszy od Red Hat EL 5 , Red Hat używa vixie-cron. RHEL 6 używa cronie. Po przejrzeniu dokumentacji RHEL 5, myślę, że potwierdza ona mój oryginalny (jeśli niepoprawnie pozyskany) wniosek. Jeszcze raz dziękuję za całą pomoc w kopaniu tego.
mlschechter,