Adicionar um arquivo ao /etc/cron.d não o executa (ubuntu 10.04)

20

Se eu scp um arquivo cron em /etc/cron.d, ele não será executado, a menos que eu edite o arquivo e altere o comando. Então crond parece pegar o arquivo cron.

Como posso fazer o cron recarregar seus arquivos cron no ubuntu 10.04? 'tocar' o arquivo não funciona nem 'reiniciar o cron' ou 'recarregar o cron'.

Meu arquivo cron está definido para ser executado a cada minuto e é registrado em um arquivo. Nada termina no arquivo de log até eu editar o comando e não há entrada para ele em / var / log / syslog

Estou perplexo.

Aqui está o meu arquivo cron salvo em /etc/cron.d/runscript (observe que ele termina com uma nova linha)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &
tom
fonte
3
É bom que você tenha incluído o usuário para executar o trabalho como. Eu deixei isso de fora, que foi a causa dos meus problemas.
Edward Anderson
1
Anos depois, nenhuma resposta aceita? Conseguiu fazê-lo funcionar? Também estou preso, e as armadilhas comuns não parecem ser o problema.
Twitmac 31/08/16

Respostas:

27

Acabei de me deparar com esse problema e, embora ele não responda ao seu caso específico, pode ajudar outras pessoas pesquisando o mesmo problema no Google, pois essa pergunta retorna muito alta nos resultados.

Eu salvei um arquivo no /etc/cron.d e ele estava sendo ignorado. No meu caso, foi porque eu havia dado uma extensão aos arquivos.

mytask.cronnão funcionou, mas eu o renomeei mytaske funcionou bem.

Todos os arquivos com extensões são ignorados; portanto, verifique se o arquivo que você salvou não possui nenhuma extensão.

Anigel
fonte
13
A página de manual do cron (8) no Debian / Ubuntu documenta isso com bastante clareza nos dias de hoje: "O suporte ao /etc/cron.d está incluído no próprio daemon do cron. Os arquivos neste diretório [...] devem estar em conformidade para a mesma convenção de nomenclatura usada pelas partes executadas (8): elas devem consistir apenas em letras maiúsculas e minúsculas, dígitos, sublinhados e hífens. Isso significa que não podem conter pontos ".
Josip Rodin
15

Verifique se o arquivo que você está copiando termina em a \n. Entradas em crontabs que não possuem um \nno final geralmente apresentam problemas. A maneira mais fácil de garantir isso é colocar uma linha em branco após sua última entrada.

user9517 suporta GoFundMonica
fonte
1
Eu estava prestes a editar minha pergunta para dizer que ela termina com \ n
tom
1
O cron Debian / Ubuntu alerta sobre isso no syslog, desde o 3.0pl1-110 lançado em 2010, cf. changelog entry: "Registre crontabs com falta de nova linha antes do EOF para o syslog. Isso é relevante apenas para crontabs não instalados via crontab (1), ou seja, /etc/cron.d/* e / etc / crontab. Fecha: # 76625"
Josip Rodin