O RHEL / CentOS executa todos os arquivos cronjob em /etc/cron.d/*, ou apenas alguns deles?

19

Este é um sistema Red Hat Enterprise Linux 5 (RHEL). Gerenciamos esse sistema usando o CFengine.

Temos vários cronjobs que estão sendo executados duas vezes mais que o normal. Eu verifiquei os cronjobs em /etc/cron.d/e este diretório contém o script real chamado host-backupe também contém um arquivo de backup cfengine chamado host-backup.cfsaved, da seguinte forma:

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

Este sistema operacional executa todos os arquivos em /etc/cron.d/*ou apenas executa arquivos que correspondem a um determinado padrão. Posso configurar isso e onde isso é definido?

Não consigo encontrar esta resposta na documentação do RHEL ou CentOS.

Stefan Lasiewski
fonte

Respostas:

20

(Se você está pagando pelo suporte da Red Hat, faça esse tipo de pergunta. É exatamente pelo que está pagando!)

Na página do manual RHEL5crontab(5) :

Se existir, o /etc/cron.d/diretório será analisado como o diretório do spool cron, exceto que os arquivos nele não são específicos do usuário e, portanto, são lidos com /etc/crontabsintaxe (o usuário é especificado explicitamente na 6a coluna).

(Existe uma maneira mais simples de ler as páginas de manual do RHEL sem ter acesso a ela? Pelo menos dessa maneira eu pude ver que este parágrafo faz parte do patch da Red Hat, portanto, não é um recurso padrão do Vixie Cron 4.1.)

Olhando para a fonte, vejo que os seguintes arquivos são ignorados: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Então, sim, seus *.cfsavedarquivos são lidos além dos originais.

Gilles 'SO- parar de ser mau'
fonte
Oi Giles, obrigado, achei exatamente a mesma sintaxe de vixie-cron-4.1-77.el5_4.1.src.rpm. Ironicamente, esse texto NÃO é incluído em nenhuma das páginas de manual do cron e não é incluído em nenhum arquivo de texto no sistema. Não sei por que, mas é um tópico para outra discussão.
Stefan Lasiewski
E eu publiquei
Stefan Lasiewski
@ Giles: Você venceu. A fonte RedHat deve conter a resposta definitiva. Nesse caso, (a fonte parece ser diferente dos arquivos instalados) [unix.stackexchange.com/questions/4815], mas esse é um tópico diferente.
Stefan Lasiewski
6

Aqui está a resposta do suporte RedHat:

Por favor, esteja ciente de que todos os arquivos no diretório cron.d são examinados e executados, é basicamente uma extensão do arquivo / etc / crontab (ou seja, o mesmo efeito se você adicionar as entradas ao arquivo / etc / crontab)

Portanto, para responder à minha pergunta "Este sistema operacional executa todos os arquivos em /etc/cron.d/*, ou apenas executa arquivos que correspondem a um determinado padrão. Posso configurar isso e onde é definido?"

Todos os arquivos em /etc/cron.d/* são executados (embora pareça que certas extensões de arquivo, como .rpmsave, * ~, etc, sejam ignoradas, de acordo com a documentação nos arquivos de origem). Não é possível configurar isso através de um arquivo de configuração. Configurar isso provavelmente é possível se a fonte for recompilada. Esse comportamento é mencionado na documentação contida na fonte, mas não aparece em nenhum manual ou página de manual que eu possa encontrar.

Stefan Lasiewski
fonte
5

Acho que a razão pela qual você teve dificuldade em localizar a resposta é que não é uma pergunta específica da Red Hat. O problema que você está vendo faz parte da funcionalidade padrão cron- cada arquivo no diretório que você identifica é automaticamente tratado como um trabalho separado .

Portanto, a resposta curta para sua pergunta é "sim, todos os arquivos são executados". Acho que isso não pode ser configurado.

mlschechter
fonte
2
Existem diferentes implementações do cron. O Debian e o Ubuntu são fornecidos com o Vixie Cron (3.0), e o manuseio cron.dé descrito em sua página de manual . O RHEL é fornecido com o ISC cron 4.1 (um fork do mesmo projeto) e a página do manual (pelo menos no CentOS ) não menciona cron.d.
Gilles 'SO- stop be evil'
1
@ Gilles: Obrigado pelas indicações. Estou usando o Fedora, que possui o Cronie instalado (também um fork do Vixie / ISC Cron). A página de manual é mencionada /etc/cron.dcomo um dos caminhos de pesquisa. Peço desculpas se não houver detalhes suficientes na minha resposta - estou razoavelmente certo de que isso também deve se aplicar à Red Hat. Por favor, deixe-me saber se esse não é o caso
mlschechter
1
Depois de analisar, esta é precisamente uma pergunta específica da Red Hat (veja minha resposta). É tão específico da Red Hat que até o CentOS é diferente, e o Fedora provavelmente também é diferente (mas eu não verifiquei).
Gilles 'SO- stop being evil'
1
@ Gilles - desculpe pela demora em responder. A partir do Red Hat EL 5 , o Red Hat usa o vixie-cron. O RHEL 6 usa cronie. Depois de revisar a documentação do RHEL 5, acho que confirma minha conclusão original (se originada incorretamente). Mais uma vez, obrigado por toda a ajuda em cavar para isso.
precisa