PHP file_exists funciona da linha de comando, mas não do cron

2

Eu tenho um script que lê arquivos de um banco de dados, os encontra em um diretório e os copia para outro diretório como parte de um sistema de upload. O processo é: 1. Usuário carrega um arquivo através de ftp para / home / uploaduser 2. Usuário insere informações em um banco de dados mysql 3. Um cronjob (download.php) pesquisa o banco de dados, localiza o nome do arquivo carregado 4. O mesmo cronjob verifica / home / uploaduser para o nome do arquivo e copia o arquivo para outro diretório

Se eu executar o download.php na linha de comando, o script funciona. Se eu rodá-lo a partir do crontab, ele não conseguirá encontrar o arquivo com file_exists ().

Aqui está o cronjob: * / 1 * * * * php /home/downloads/cron-scripts/download.php > / dev / null 2 > & 1

Eu tentei alterar a propriedade dos arquivos para o usuário que executa o cronjob, sem diferença.

O cronjob está instalado em execução: crontab -e como o usuário que também executa o script. O usuário que executa o script está no grupo uploaduser e as permissões do arquivo do grupo uploaduser são 664.

    
por Aaron Craig 09.02.2010 / 10:29

2 respostas

2

você tem algo em seus scripts que depende das configurações do ambiente? o cron do ambiente é executado normalmente é diferente do ambiente do usuário.

redireciona a saída do seu script para um arquivo de log em vez de / dev / null para obter uma mensagem de erro.

    
por 09.02.2010 / 10:40
2
  1. Tente dar o caminho absoluto para executável do PHP como / usr / bin / php
  2. Tente redirecionar a saída para algum arquivo para que você possa ver a saída
por 09.02.2010 / 10:40

Tags