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.
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