quarta-feira, 5 de outubro de 2011

crontab não executa comandos agendados.

Tive, mais uma vez, um problema que eu apenas contornava mas não ia a fundo e dessa vez consegui me empenhar um pouquinho mais.

O problema:
   Como root eu adicionava comandos no crontab tanto pelo "crontab -e" como diretamente ao arquivo /etc/crontab e o comando não era executado. 

A análise:
   Comecei adicionando um comando bem simples ao cronta, um date com saída para um arquivo executando a cada 1 minuto. Isso também não funcionou.
   Passei a ler os logs (/var/log/cron) e observei que o erro estava relacionado ao sistema SELinux, esse serviço impõe restrições até mesmo ao root e era o que estava acontecendo.

A solução:
   Eu já havia até desabilitado o uso so SELinux alterando o valor da diretiva "SELINUX" para "disable" no arquivo /etc/selinux/config mas não havia me atentado para o fato de ter que executar o comando "selinuxdefcon" para que essa nova configuração fosse ativada.

Ps1. Essa não é a melhor solução já que esse serviço SELinux foi criado para adicionar segurança ao sistema, mas como ainda não o conheço bem (o estudarei em breve) o desabilitei.

Ps2. Essa opção eu alterei logo que terminei a instalação desse servidor, então quando abri o arquivo e vi que ela já estava "disable" estranhei pois, mesmo que ela não fosse habilitada instantâneamente, ela deveria ser validada durante o boot, então fui verificar quando foi o último reboot desse servidor e admirei o fato de ele estar "up" a 63 dias, ou seja, desde a instalação. E ele é bastante utilizado. rsrsrsrs "essa ps2 foi só pra me gabar mesmo!! rsrsrs"

Nenhum comentário: