Criar um cronjob ou tarefa (e o que fazer se não estiver a funcionar)
Com um cronjob (no DirectAdmin: Tarefas Cron) pode executar um script automaticamente em horários fixos, por exemplo todas as noites. De seguida, explicamos como criar um e o que fazer caso não funcione.
Regras para cronjobs
- No Webhost One e no Webhost Two, só pode iniciar uma tarefa, no máximo, a cada 10 minutos, considerando todas as suas tarefas em conjunto.
- Nos pacotes Power Webhost, as tarefas podem ser executadas com mais frequência.
- Distribua vários cronjobs ao longo do tempo e escolha um horário mais tranquilo, como as 03:17 em vez da meia-noite exata.
- Não são permitidos cronjobs pesados que sobrecarreguem o servidor durante muito tempo. No mesmo servidor estão alojados mais sítios web. Se necessário, interrompemos um cronjob. Por isso, mantenha as suas tarefas curtas e não as execute com mais frequência do que o necessário.
Criar um cronjob
- 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. Preencha sempre o minuto com um número, nunca com um asterisco, caso contrário a tarefa é executada todos os minutos.
- No comando, introduza o caminho completo, por exemplo:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Substitua gebruiker pelo seu nome de utilizador do DA. - Clique em Criar.

E-mail após cada cronjob
A saída de um cronjob é enviada para a conta de e-mail predefinida do seu pacote, consulte A conta de e-mail predefinida no DirectAdmin. Também pode enviar a saída para o seu próprio endereço através de Enviar toda a saída do cron por e-mail. Se não quiser receber e-mails, clique em Evitar E-mails ao criar a tarefa, ou coloque o seguinte após o comando:
>/dev/null 2>&1
Atenção com scripts PHP
Um script executado a partir de um cronjob não sabe sob que domínio está a ser executado. $_SERVER['SERVER_NAME'] e $_SERVER['DOCUMENT_ROOT'] ficam vazios, e um include com um caminho relativo pode falhar. Por isso, coloque no início do seu script:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
O seu cronjob não está a funcionar?
Verifique os seguintes pontos, um a um:
- Leia a saída. Remova temporariamente
>/dev/null 2>&1e verifique o e-mail na conta de e-mail predefinida, ou configure o seu próprio endereço. Normalmente, encontra ali exatamente o que está a correr mal. Também pode escrever a saída para um ficheiro de registo colocando>> /home/gebruiker/cron-log.txt 2>&1após o comando. - Verifique o caminho. A mensagem Could not open input file significa que o caminho para o script está incorreto. Verifique no Gestor de Ficheiros: o caminho começa com
/home/gebruiker/domains/. - Verifique a versão do PHP. Com
/usr/local/bin/php, a tarefa utiliza a mesma versão de PHP que o seu sítio web. 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 o comando aí e veja o que acontece, consulte Abrir o SSH ou o Terminal no DirectAdmin. Sem Terminal, pode abrir o script no seu navegador, ou chamá-lo no cronjob através de
curl --silent https://www.jouwdomein.nl/taak.php. - Verifique as permissões. O script tem de ser legível: os ficheiros devem estar definidos como 644 e as pastas como 755. Consulte Permissões de ficheiros e pastas (chmod).
- Verifique o horário. Verifique em O cronjob é executado: se a tarefa é executada quando pensa que deveria. Se houver um asterisco no minuto, a tarefa é executada todos os minutos e pode ser interrompida.
- Verifique o limite do pacote. Se a tarefa for executada com mais frequência do que o permitido pelo seu pacote, ou demorar demasiado tempo, é interrompida. Nesse caso, divida o trabalho em várias rondas.
date >> /home/gebruiker/cron-log.txt; antes do seu comando.Consulte também no manual do DirectAdmin: A conta de e-mail predefinida do seu pacote.
Explicação detalhada com imagens de ecrã: Tarefas Cron: executar tarefas automaticamente no manual do DirectAdmin.
