Pergunta

Estou tentando executar um script de teste usando Crontab dentro de Plesk. O arquivo php simplesmente me envia uma mensagem

mail('me@somewhere.com','Cron Test','Test');  

Meu caminho para PHP é/usuário/bin/php

Entrei * em todos os campos, para executar o script a cada minuto com o seguinte comando:

/usr/bin/php -q /usr/httpdocs/crontest.php

No entanto, o script não está sendo executado.

Alguém pode ajudar?

Provavelmente estou perdendo algo simples, nunca usei Cron antes.

Qualquer conselho apreciado.

Obrigado.

Foi útil?

Solução

Eu começaria a escrever para um arquivo de log. por exemplo:

* * * * * /usr/bin/php -q /usr/httpdocs/crontest.php >> /a-location/crontest.log 2>&1

Isso lhe dará pelo menos erros óbvios, como não ser capaz de encontrar PHP etc.

Outras dicas

Descobri que, ao usar o Cron baseado no usuário em Plesk, há vários problemas:

Primeiro, descobri que você deveria fazer referência ao script do domínio virtual. Se o seu script tiver um endereço absoluto de /var/www/vhosts/domain.com/httpdocs/email-this.php, você deverá fazer referência a ele como httpdocs/email-this.php no crontab.

Segundo, o roteiro precisa ter permissões muito particulares, mas não tenho certeza do que elas "devem ser". Apache: Apache é tudo o que já funcionou para mim. Mesmo com o conjunto de permissão de gravação em grupo, o usuário ainda precisava ser apache ... estranho.

Terceiro, a maneira mais fácil de fazer os testes foi editar o Crontab diretamente, em vez de voltar a Plesk toda vez que eu precisava fazer uma mudança ... edite seu crontab assim:

Crontab -u [FileSystem -Username] -e

Quarto, eu nunca consegui fazer o Crontab escrever em um arquivo de log fora do httpdocs (tentei estatísticas/logs/cron_log de todas as maneiras que eu conseguia pensar ... lol ... sem dados). Acabei apenas adicionando a diretiva correio no topo do arquivo crontab durante o teste:

por exemplo:

MAILTO=you@domain.com
##      *       *       *       *       *       php -q httpdocs/cron.php

Veja também isso se você tiver Plesk 10 ou acima: http://shaun.net/2011/09/solving-plesk-10-3-1-cron-cron-issues/

Eu tive que fazer isso

/usr/local/psa/bin/server_pref -u -crontab -secure -shell "/bin/sh"

Para fazer isso (exemplo) funcionando: wget -o - http://www.yourdomain.com/cron.php

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top