RHEL / CentOS выполняет все файлы cronjob в /etc/cron.d/* или только некоторые из них?

19

Это система Red Hat Enterprise Linux 5 (RHEL). Мы управляем этой системой с помощью CFengine.

У нас есть несколько cronjobs, которые работают в два раза чаще, чем обычно. Я проверил cronjobs под /etc/cron.d/этим каталогом и в нем содержится фактический вызванный скрипт host-backup, а также файл резервной копии cfengine, который называется host-backup.cfsavedтак:

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

Выполняет ли эта операционная система все файлы /etc/cron.d/*или выполняет только те файлы, которые соответствуют определенному шаблону. Могу ли я настроить это, и где это определено?

Я не могу найти этот ответ в документации RHEL или CentOS.

Стефан Ласевский
источник

Ответы:

20

(Если вы платите за поддержку Red Hat, вам следует задать им подобные вопросы. Это именно то, за что вы платите!)

Со справочной crontab(5)страницы RHEL5 :

Если он существует, /etc/cron.d/каталог анализируется, как каталог спулинга cron, за исключением того, что файлы в нем не зависят от пользователя и поэтому читаются с /etc/crontabсинтаксисом (пользователь указан явно в шестом столбце).

(Есть ли более простой способ чтения справочных страниц RHEL без доступа к нему? По крайней мере, таким образом я мог видеть, что этот абзац является частью патча Red Hat, поэтому это не стандартная функция Vixie Cron 4.1.)

Глядя на источник, я вижу , что следующие файлы пропускаются: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Так что да, ваши *.cfsavedфайлы читаются в дополнение к оригиналам.

Жиль "ТАК - прекрати быть злым"
источник
Привет Джайлс, спасибо, я нашел тот же самый синтаксис от vixie-cron-4.1-77.el5_4.1.src.rpm. По иронии судьбы, этот текст НЕ включен ни в одну из man-страниц для cron и не включен ни в один текстовый файл в системе. Я не уверен, почему это так, но это тема для другого обсуждения.
Стефан Ласевский
И я разместил следующий вопрос по адресу unix.stackexchange.com/questions/4815
Стефан Ласевский,
@ Джайлс: Вы выиграли. Источник RedHat должен содержать окончательный ответ. В этом случае (кажется, что источник отличается от установленных файлов) [unix.stackexchange.com/questions/4815], но это другая тема.
Стефан Ласевский
6

Вот ответ от поддержки RedHat:

Обратите внимание, что все файлы в каталоге cron.d проверяются и выполняются, в основном это расширение файла / etc / crontab (т. Е. Тот же эффект, если вы добавляете записи в файл / etc / crontab)

Итак, чтобы ответить на мой вопрос: «Эта операционная система выполняет все файлы в /etc/cron.d/* или она выполняет только файлы, которые соответствуют определенному шаблону. Могу ли я настроить это, и где это определено?»

Все файлы в /etc/cron.d/* выполняются (хотя кажется, что некоторые расширения файлов, такие как .rpmsave, * ~ и т. Д. Игнорируются, согласно документации в исходных файлах). Это невозможно настроить с помощью файла конфигурации. Настройка этого возможна, если исходный код перекомпилирован. Это поведение упоминается в документации, содержащейся в источнике, но не встречается ни в какой справочной или справочной странице, которую я могу найти.

Стефан Ласевский
источник
5

Я думаю, что причина, по которой у вас возникли трудности с поиском ответа, заключается в том, что это не вопрос, относящийся к Red Hat. Проблема, которую вы видите, является частью стандартной функциональности cron- каждый файл в каталоге, который вы идентифицируете, автоматически рассматривается как отдельное задание .

Итак, краткий ответ на ваш вопрос «да, все файлы выполнены». Я думаю, это не то, что можно настроить.

mlschechter
источник
2
Существуют разные реализации cron. Debian и Ubuntu поставляются с Vixie Cron (3.0), и их обработка cron.dописана на его man-странице . RHEL поставляется с ISC cron 4.1 (ветвь того же проекта), а страница руководства (по крайней мере, в CentOS ) не упоминается cron.d.
Жиль "ТАК - перестать быть злым"
1
@ Жиль: Спасибо за указатели. Я использую Fedora, на которой установлен Cronie (также форк Vixie / ISC Cron). Страница man упоминается /etc/cron.dкак один из путей поиска. Я прошу прощения, если в моем ответе не было достаточно подробностей - я вполне уверен, что это относится и к Red Hat. Пожалуйста, дайте мне знать, если это не так
mlschechter
1
Если посмотреть на это, то это как раз вопрос, относящийся к Red Hat (см. Мой ответ). Это настолько специфично для Red Hat, что даже CentOS отличается, и Fedora, вероятно, также отличается (но я не проверял).
Жиль "ТАК - перестань быть злым"
1
@ Жиль - извините за задержку с ответом. Начиная с Red Hat EL 5 , Red Hat использует vixie-cron. RHEL 6 использует кормильца. Изучив документацию по RHEL 5, я думаю, что она подтверждает мое первоначальное (если неверно получено) заключение. Опять же, спасибо за помощь в копании для этого.
mlschechter