Criar uma cronjob ou tarefa agendada (e o que fazer se não for executada)
Com uma cron job (no DirectAdmin: Tarefas Cron) pode executar um script automaticamente em horários fixos, por exemplo todas as noites. Abaixo explicamos como criar uma e o que fazer se não funcionar.
Regras para cron jobs
- Agende uma tarefa para iniciar, no máximo, uma vez a cada 10 minutos. Pedimos isto a todos os clientes, porque o servidor é partilhado com outros websites.
- Distribua várias cron jobs ao longo do tempo e escolha um horário calmo, como as 03:17 em vez da meia-noite exata.
- Não são permitidas cron jobs pesadas que sobrecarreguem o servidor durante muito tempo. Existem outros websites no mesmo servidor. Se necessário, interrompemos uma cron job. Por isso, mantenha as suas tarefas curtas e não as execute com mais frequência do que o necessário.
Criar uma cron job
- Inicie sessão no DirectAdmin e, em Funcionalidades Avançadas, clique em Tarefas Cron.
- Clique em Criar tarefa cron.
- Preencha o minuto, a hora, o dia, o mês e o dia da semana. Indique sempre o minuto com um número e não com um asterisco, caso contrário a tarefa será executada a cada minuto.
- No comando, indique o caminho completo, por exemplo:
/usr/local/bin/php -q /home/gebruiker/domains/seudominio.pt/public_html/taak.php
Substitua gebruiker pelo seu nome de utilizador do DirectAdmin. - Clique em Criar.

E-mail após cada cron job
O resultado de uma cron job é enviado para a conta de e-mail predefinida do seu pacote, consulte A conta de e-mail predefinida no DirectAdmin. Também pode enviar o resultado para um endereço próprio com Enviar todo o resultado cron para o e-mail. Se não pretender receber e-mails, clique em Impedir e-mails ao criar a tarefa, ou acrescente ao final do comando:
>/dev/null 2>&1
Atenção com scripts PHP
Um script executado a partir de uma cron job não sabe em que domínio está a ser executado. $_SERVER['SERVER_NAME'] e $_SERVER['DOCUMENT_ROOT'] estão vazios, e um include com um caminho relativo pode falhar. Por isso, coloque no início do seu script:
$pad = '/home/gebruiker/domains/seudominio.pt/public_html'; $_SERVER['SERVER_NAME'] = 'seudominio.pt'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
A sua cron job não é executada?
Verifique estes pontos um a um:
- Leia o resultado. Remova temporariamente
>/dev/null 2>&1e consulte o e-mail na conta de e-mail predefinida, ou configure um endereço próprio. Aí costuma estar descrito exatamente o que corre mal. Também pode gravar o resultado num ficheiro de registo, acrescentando>> /home/gebruiker/cron-log.txt 2>&1ao final do comando. - Verifique o caminho. A mensagem Could not open input file significa que o caminho para o script não está correto. Consulte o Gestor de ficheiros: o caminho começa por
/home/gebruiker/domains/. - Verifique a versão do PHP. Com
/usr/local/bin/php, a tarefa utiliza a mesma versão do PHP que o seu website. Se o seu script só funcionar noutra versão, altere-a em Select PHP version. - Teste o comando manualmente. Se tiver um pacote com Terminal, cole aí o comando e veja o que acontece, consulte Acesso SSH e o Terminal no DirectAdmin. Sem Terminal, abra o script no seu navegador ou chame-o na cron job através de
curl --silent https://www.seudominio.pt/taak.php. - Verifique as permissões. O script tem de ser legível: os ficheiros devem ter as permissões 644 e as pastas 755. Consulte Permissões de ficheiros e pastas (chmod).
- Verifique o horário. Confirme em A tarefa cron é executada: se a tarefa é executada quando pretende. Se houver um asterisco no minuto, a tarefa é executada a cada minuto. Isso é demasiado frequente.
- Verifique quanto tempo a tarefa demora. Se uma tarefa demorar muito ou recomeçar antes de a anterior terminar, pode bloquear ou fazer com que o seu pacote atinja os seus limites. Nesse caso, divida o trabalho por várias execuções.
date >> /home/gebruiker/cron-log.txt; antes do seu comando.Consulte também o manual do DirectAdmin: A conta de e-mail predefinida do seu pacote.
Explicação detalhada com capturas de ecrã: Tarefas Cron: executar tarefas automaticamente no manual do DirectAdmin.
Quer aprender mais? Frequente gratuitamente o Curso de WordPress, aula 6.3 Imagens, PHP e outros ganhos de velocidade.
