Por que o Crontab me dá um erro com o meu script PHP quando executá-lo do terminal não?

1

Estou tendo alguns problemas com a execução do Crontab com arquivos PHP.

Eu tenho este mesmo script PHP rodando no Crontab por mais de 6 meses mas alguns dias atrás misteriosamente pararam para executar o código corretamente. O Crontab funciona, mas o script produz um erro. A outra coisa interessante é que o mesmo script é executado sem erros no terminal SSH.

Qual deve ser o problema aqui? Existe uma maneira de configurar o Crontab para executar com a mesma configuração do Terminal SSH?

    
por André 22.03.2011 / 11:49

3 respostas

7

A razão mais comum pela qual um script funciona na linha de comando, mas não a partir de um crontab é que o script depende de uma variável de ambiente. Crontabs só tem algumas variáveis de ambiente definido: normalmente só HOME , USER , SHELL (set to /bin/sh ) e PATH (ajustado para o padrão do sistema). Se precisar de mais, você deve defini-los no arquivo crontab, ou fonte ~/.profile a partir do comando.

Talvez você tem duas versões do PHP instalados, que vem pela primeira vez em sua linha de comando $PATH e um que vem em primeiro lugar em sua padrão do sistema $PATH , eo PHP padrão do sistema foi alterada recentemente. Mas é impossível fazer mais do que um palpite, já que você não diz qual é o erro que está recebendo.

    
por 23.03.2011 / 01:04
0

Certifique-se de que você crontab executa seus scripts como o mesmo usuário que você está logado como.

Alguns env env ou direitos de arquivo provavelmente mudaram para um dos usuários.

    
por 23.03.2011 / 08:07
0

Mais uma coisa a não pressupõe em um script executado pelo cron: valor de $ HOME. Use $ HOME explicitamente, não suponha que tenha algum valor em particular. Chame comandos e arquivos de referência por caminhos completos.

    
por 08.11.2011 / 17:13

Tags