Conteúdo
Um cron job é uma tarefa programada com o cron, uma ferramenta utilizada para agendar e automatizar tarefas futuras em sistemas operacionais Unix. Configurar cron jobs é extremamente vantajoso, pois elimina a necessidade de realizar tarefas repetitivas manualmente, garantindo maior eficiência e reduzindo a probabilidade de erros humanos. Neste artigo, abordaremos o que é um Cron Job, os fundamentos dos cron jobs, incluindo seus tipos, sintaxe, strings especiais e permissões. Também compartilharemos dicas práticas e exemplos de comandos para auxiliar na utilização correta dos cron jobs.
Para que servem os Cron Jobs?
Os cron jobs permitem que administradores de sistema automatizem tarefas como manutenção, monitoramento do espaço em disco e backups em intervalos regulares. Isso é especialmente útil em servidores que operam 24 horas por dia, 7 dias por semana, como servidores privados virtuais (VPS). Desenvolvedores web também podem utilizá-los para automatizar backups, verificar links quebrados e limpar o cache de seus sites em intervalos definidos.
Como funcionam os Cron Jobs?
O cron é um daemon, ou seja, um processo que opera em segundo plano e executa tarefas de maneira não interativa. Ele utiliza um arquivo cron, que é um documento de texto com os comandos que devem ser executados periodicamente em horários específicos.
O arquivo de configuração principal, chamado de crontab, geralmente está localizado em /etc/crontab
. Apenas administradores têm permissão para modificar o crontab do sistema, mas usuários podem criar seus próprios arquivos crontab para agendar tarefas pessoais.
Limitações dos Cron Jobs
Embora cron jobs sejam bastante práticos, eles possuem algumas restrições:
- O menor intervalo de execução é de 60 segundos, o que impede a configuração para intervalos menores.
- Se uma tarefa for perdida por falha do sistema, será necessário reiniciá-la manualmente.
- Não há mecanismo de repetição automática em caso de falha de execução.
- O cron não pode ler variáveis de ambiente necessárias para alguns scripts.
Dica: Antes de configurar um cron job, teste o script manualmente para garantir que ele funcione corretamente. Se houver problemas, contate o suporte de hospedagem.
Sintaxe do Crontab
Antes de configurar cron jobs, é importante compreender a sintaxe e a formatação do cron para garantir que o script funcione corretamente. A sintaxe do crontab é composta por cinco campos, cada um com os seguintes valores possíveis:
- Minuto: O minuto dentro da hora em que o comando será executado, variando entre 0 e 59.
- Hora: A hora do dia em que o comando será executado, variando de 0 a 23 no formato de 24 horas.
- Dia do mês: O dia do mês em que o comando deve ser executado, variando entre 1 e 31.
- Mês: O mês do ano em que o comando será executado, variando de 1 a 12, onde 1 representa janeiro e 12 representa dezembro.
- Dia da semana: O dia da semana em que o comando será executado, variando de 0 a 6, sendo 0 correspondente a domingo. Em alguns sistemas, o número 7 também pode ser usado para representar o domingo.
A sintaxe do crontab possui cinco campos, que definem os minutos, horas, dias do mês, meses e dias da semana em que o comando será executado. Esses campos podem ser modificados com operadores, como o asterisco (*) para todos os valores possíveis, ou hífens (-) para intervalos de valores.
Exemplos de Comandos Cron
Aqui estão alguns exemplos de cron jobs:
0 0 * * 0 /root/backup.sh
: Executa um backup todo domingo à meia-noite.*/10 * * * * /scripts/monitor.sh
: Realiza monitoramento a cada 10 minutos.@reboot /root/clearcache.sh
: Limpa o cache a cada reinicialização do sistema.
Strings Especiais do Cron Job
Para simplificar, o cron suporta strings especiais como:
@hourly
: Executa a cada hora.@daily
: Executa diariamente à meia-noite.@reboot
: Executa no momento da inicialização do sistema.
Permissões Cron
As permissões de cron são definidas nos arquivos cron.allow
e cron.deny
. Esses arquivos controlam quais usuários têm permissão para criar e executar cron jobs.
Como executar tarefas Cron no plano Cloud da Hostinger
Se você estiver utilizando um plano Cloud da Hostinger, configurar um cron job pode ser feito de maneira simples através da interface gráfica, sem a necessidade de utilizar comandos via SSH. Veja como configurar:
- Acesse seu hPanel da Hostinger.
- No menu superior, clique em Sites e selecione o domínio para o qual você deseja configurar o cron job. Neste exemplo, usaremos o domínio programadoresdepre.com.br.
- Navegue até a aba Avançado e clique em Cron Jobs.
- Agora, clique em Criar Novo Cron Job.
Configuração do Cron Job
Na interface de criação, você verá várias opções para configurar seu cron job. Abaixo está uma explicação de cada campo e como preenchê-los:
- PHP ou Custom: Você pode escolher entre executar um comando PHP ou customizado. Para scripts PHP, deixe a opção como PHP.
- Comandos a rodar: Insira o caminho completo para o script que deseja executar. Por exemplo:
/usr/bin/php /home/u713152163/nomedoseuscript.php
Esse é o comando que será executado periodicamente conforme a configuração.
Campos de tempo para execução do cron job:
- Minuto: Insira o minuto em que deseja que o cron job seja executado (0-59). Para execução a cada minuto, você pode usar
*
. - Hora: Defina a hora do dia (0-23) em que o script será executado.
- Dia: Selecione o dia do mês em que o cron job deve ser executado (1-31).
- Mês: Escolha o mês (1-12) para a execução do cron job.
- Dia da semana: Determine o dia da semana (0-6, onde 0 é domingo). Por exemplo, para rodar apenas nas segundas-feiras, insira
1
.
Você também pode optar por usar uma Opção Comum ao invés de definir manualmente os campos de tempo. As opções comuns facilitam o agendamento para execuções diárias, semanais ou mensais, entre outras frequências predefinidas.
- Após preencher todos os campos necessários, clique em Salvar para ativar seu cron job.
Esse método gráfico torna o processo de configuração mais simples, especialmente para quem não está familiarizado com comandos no terminal.
Como executar tarefas Cron pelo terminal na VPS Hostinger
Nesta seção, explicaremos como agendar cron jobs inserindo comandos em um shell de um sistema baseado em Linux, como em um VPS da Hostinger.
Conecte-se ao seu VPS por meio do Terminal ou de um cliente SSH, como o PuTTY. Alternativamente, usuários de VPS da Hostinger podem acessar a interface de linha de comando (CLI) diretamente pelo navegador, usando o hPanel.
Dica profissional:
Além do VPS, os planos de hospedagem gerenciada da Hostinger também oferecem suporte a cron jobs. Por exemplo, o plano de hospedagem web Business permite agendar jobs ilimitados.
Depois de acessar o hPanel, vá até o menu VPS na barra superior e escolha seu plano. Em seguida, clique em Browser terminal para abrir o terminal no navegador.
Instalando o Cron
O cron geralmente já vem pré-instalado em todas as distribuições Linux. Caso contrário, você pode instalá-lo com o seguinte comando no Ubuntu, usando o gerenciador de pacotes apt:
sudo apt install cron
Antes de começar a programar cron jobs, é importante entender os dois tipos de arquivos de configuração: o crontab do sistema e o crontab do usuário.
- O crontab do sistema é usado para tarefas essenciais que afetam todo o sistema e só pode ser editado por administradores com privilégios de root.
- O crontab do usuário é utilizado para criar e editar tarefas que afetam apenas o usuário específico.
Para modificar o crontab do sistema, certifique-se de que o usuário atual tenha privilégios de root. Continue lendo para aprender mais sobre as operações básicas que podem ser realizadas com cron jobs.
Criando um arquivo Crontab com Cron Job
Para criar ou editar um arquivo crontab existente, insira o seguinte comando no terminal:
crontab -e
Se for a primeira vez que você utiliza esse comando, o sistema solicitará que escolha um editor de texto, como nano ou vi. Após selecionar o editor, você poderá adicionar novos comandos ou editar os já existentes no arquivo crontab.
Exibindo a lista de tarefas Cron agendadas ativas
Para visualizar as tarefas cron ativas e agendadas no seu sistema, use o comando abaixo:
crontab -l
Se o sistema possuir múltiplos usuários, você pode visualizar as tarefas agendadas de outros usuários ao executar o seguinte comando como superusuário:
crontab -u nome_do_usuario -l
Concedendo permissões de root para executar Cron Jobs
Devido a limitações de privilégios, alguns comandos requerem permissões de root para serem executados. Para conceder a si mesmo essas permissões, adicione sudo su
antes do comando.
Por exemplo, para editar as tarefas cron de outro usuário, utilize o comando abaixo:
sudo su crontab -u nome_do_usuario -e
Além disso, você pode adicionar scripts de tarefas cron no diretório /etc/cron.d
para automatizar instalações e atualizações. Para isso, é necessário ter permissões de root e seguir as convenções de nomenclatura adequadas.
Alternativamente, um usuário root pode mover scripts cron para os seguintes diretórios para definir a frequência de execução:
/etc/cron.hourly/
: Executa o script a cada hora./etc/cron.daily/
: Executa o script diariamente./etc/cron.weekly/
: Executa o script semanalmente./etc/cron.monthly/
: Executa o script mensalmente.
Excluindo tarefas agendadas com Cron Job
Para remover todas as tarefas agendadas no crontab e recomeçar do zero, use o comando:
crontab -r
Como alternativa, utilize o comando abaixo, que solicitará confirmação antes de excluir as entradas do crontab:
crontab -i
Conclusão
O cron daemon é uma ferramenta poderosa para automatizar tarefas em sistemas Unix, como backups e monitoramento. Usando a sintaxe correta e configurando os comandos adequadamente, você pode agendar tarefas de maneira eficaz e eficiente, facilitando a manutenção de servidores e sistemas.
Dica: Caso tenha dúvidas sobre a criação de cron jobs, ferramentas como Crontab Generator podem ajudar a gerar a sintaxe correta.