Você está na página 1de 6

Cron Job: Guia Completo para Iniciantes 2020

hostinger.com.br/tutoriais/cron-job-guia/

June 18,
2019

Sempre existem mais coisas que você pode fazer com muito mais praticidade. Gerenciar
tarefas repetitivas usando um processo automatizado é algo que os webmasters têm
preferência. Se você usa um sistema operacional Unix, uma Cron Job pode poupar seu
tempo executando uma tarefa automaticamente.

Neste artigo, vamos mostrar o básico de uma Cron Job e como usá-la para agendar
tarefas. A ideia é otimizar seu tempo e fazer com que você trabalhe com mais agilidade e
autonomia.

O Que é Cron Job?


Cron é um programa utilitário responsável por executar uma tarefa repetidamente em
algum tempo mais tarde. A ação de dar um comando para agendar uma tarefa para um
tempo específico e de forma repetida é o que chamamos de Cron Job.

Aqui está como ele funciona: se você quer agendar uma tarefa para fazer mais tarde,
você pode usar um outro comando como ele. Mas, para tarefas recorrentes, o Cron é a
solução perfeita.

O Cron é um daemon. Isso significa que ele trabalha em plano de fundo para executar
tarefas não-interativas. No Windows, você pode estar mais familiarizados com processos
em plano de fundo com os Serviços.

Um daemon está sempre no status ocioso e aguarda uma solicitação de um comando


para desempenhar uma certa tarefa. Essa tarefa pode ser tanto de dentro do
computador principal quanto de qualquer outra máquina conectada à mesma rede.

Um arquivo Cron é sempre um arquivo de texto que contém comandos para rodar em
uma hora específica. O sistema padrão do arquivo contab é /etc/crontab e ele fica
localizado dentro do diretório crontab, que é /etc/cron.*/. Apenas administradores
podem editar um arquivo crontab do sistema.

Porém, como os sistemas operacionais Unix têm suporte a múltiplos usuários, cada um
pode criar seu próprio arquivo crontab e lançar comandos para executar tarefas em
qualquer hora que eles quiserem. Um daemon Cron vai verificar o arquivo e rodar o
comando no plano de fundo do sistema.

Com Cron Jobs, você pode automatizar a manutenção do sistema, fazer o


monitoramento do espaço de disco, e agendar backups. Por conta da sua natureza, os
Cron Jobs são excelentes para computadores que trabalham todos os dias e horas da
1/6
semana – um servidor.

Só se atenha ao fato de que os Cron jobs são mais usados por administradores de
sistemas, sendo também bastante úteis para desenvolvedores. Por exemplo, para
desativar uma conta expirada, checar links quebrados ou até mesmo enviar newsletters
para usuários específicos.

O Básico de uma Cron Job


Basicamente, você pode criar e ditar uma Cron Job usando diferentes métodos. Neste
tutorial, vamos mostrar como você pode fazer isso usando o Terminal do Linux.

Se você tiver uma VPS na Hostinger, você pode encontrar suas credenciais de login na
aba de gerenciamento da sua VPS. Assim, você consegue acessar seu servidor pelo SSH.
Se precisar de detalhes de como fazer isso, acesse o tutorial PuTTY SSH.

Abaixo estão algumas operações básicas que os Cron Jobs (Crontab Linux) podem fazer.

Se você quer editar um arquivo crontab do usuário atual, digite crontab -e no seu
terminal.

O resultado que você vai ter é algo como a figura abaixo.

Como ele usa o vi editor, você pode aprender comandos básicos de vi para garantir que
você faça as ações corretas.

Se você quer editar um crontab de outro usuário, você pode digitar crontab -u
2/6
username -e. Tenha em mente que você só pode fazer isso como um superusuário. Isso
significa que você precisa digitar sudu su antes de digitar o comando.

Outra operação permite que você veja se existe algum arquivo crontab já criado. Você
pode simplesmente digitar crontab -l. Se não tiver nenhum, você vai ver este resultado
abaixo.

Junto a isso, se você quer ver listas de arquivos crontab de outros usuários, você pode
digitar crontab -u username -l como um superusuário.

Além de conhecer estas operações básicas, é importante que vocẽ aprenda a sintaxe
básica também.

Sendo assim, saiba que um arquivo crontab consiste em duas partes: o temporizador de
agendamento e o comando. É assim como o comando é escrito.

* * * * * /bin/sh backup.sh

O Cron Job ***** /bin/sh backup.sh significa que ele vai executar um backup a
cada minuto.
30 18***rm /home/sydtesting/tmp/* significa que ele vai remover os arquivos
tmp de /home/sydtesting/tmp todos os dias às 18:30h.

Vamos ver alguns detalhes extras mais adiante.

Como Escrever uma Sintaxe Cron de Forma Correta


Como mencionamos antes, um arquivo crontab contém 5 campos – cada um é
representado por um asterisco – que determinam a data e a hora que certa tarefa é
programada para desempenhar repetidamente.

3/6
Minute (Minuto) – é o minuto da hora em que o comando vai rodar, variando de 0
a 59.
Hour (Hora) – é a hora em que o comando será executado, variando de 0 a 23.
Day of the month (Dia do mês) – é o dia do mês em que o comando vai rodar,
variando de 1 a 31.
Month (Mês) – é o mês em que o comando será executado, variando de 1 a 12.
Day of the week (Dia da semana) – é o dia da semana que você quer que o
comando rode, variando de 0 a 7.

Junto a isso, você precisa usar caracteres apropriados em cada arquivo crontab.

Asterisco (*) – define todos os parâmetros de agendamento.


Vírgula (,) – mantém duas ou mais horas de execução em um único comando.
Hífen (-) – determina o intervalo da hora ao definir vários tempos de execução de
único comando.
Barra inclinada (/) – cria intervalos pré-determinados de tempo dentro de um
intervalo de tempo específico.
Last (L) – tem o propósito específico de determinar o último dia da semana do mês
respectivo. Por exemplo, 3L significa a última quarta-feira.
Weekday (W) – determina o dia da semana mais próximo de um tempo dado. Por
exemplo, 1W significa se o 1° for um sábado, o comando vai ser executado na
segunda-feira (3°).
Hash (#) – para determinar o dia da semana, seguido por um número que varia de
1 a 5. Por exemplo, 1#2 significa a segunda segunda-feira.
Ponto de interrogação (?) – serve para deixar um espaço.

11 Exemplos de Sintaxe Cron


Agora que você aprendeu como escrever uma sintaxe cron corretamente, vamos
mostrar mais exemplos para ajudar você a entender melhor as regras acima.

Antes de continuar, tenha em mente que a saída do comando vai automaticamente ser
enviada para sua conta de email local. Então, se você quer parar de receber esses
emails, você pode adicionar >/dev/null 2>&1 à sintaxe. Como no exemplo:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Além disso, se você quer receber a saída de email em uma conta específica, então você
pode adicionar MAILTO, seguido do endereço de email. Aqui está um exemplo:

MAILTO="myname@hostinger.com"

4/6
0 3 * * * /root/backup.sh >/dev/null 2>&1

Abaixo estão mais alguns exemplos de sintaxe Cron:

Expressão Significado

0 0 * * * /bin/sh Fazer um backup de banco de dados à meia noite de


backup.sh cada dia.

0 6,18 * * * /bin/sh Fazer um backup de banco de dados duas vezes por


backup.sh dias (às 6 da manhã e às 18h da tarde).

0 */6 * * * Para fazer monitoramentos a cada 6 horas.


/scripts/monitor.sh

*/10 * * * * Para executar uma tarefa cron para o arquivo do script


/home/user/script.sh localizado no diretório home a cada 10 minutos.

0 * 20 7 * /bin/sh Para executar um backup de banco de dados a cada


backup.sh hora em 20 de julho.

0 0 * * 2 * /bin/sh Para executar um backup de banco de dados à meia


noite de toda terça-feira.

* * * 1,2,5 * Para executar um comando em Janeiro, Fevereiro e


/script/script.sh Maio.

10-59/5 5 * * * Para executar um comando a cada 5 minutos às 5:00h


/home/user/script.sh da manhã, começando às 5:10h.

0 8 1 */3 * Para executar um comando trimestralmente no


/home/user/script.sh primeiro dia às 8:00h da manhã.

***** Para definir uma agenda para tarefas múltiplas em um


/scripts/script.sh; único Cron Job.
/scripts/scrit2.sh

@reboot Para executar uma certa tarefa toda vez que você inicia
/scripts/script.sh o sistema.

Conclusão
Definir uma tarefa agendada automaticamente não apenas é prático, como também
previne que você esqueça de realizá-la por descuido.

5/6
O Cron Job é uma ótima maneira de gerenciar certas tarefas tanto como um
administrador de tarefas como um desenvolvedor. Tudo o que você precisa fazer é usar
o comando certo e escolher a hora certa.

Aqui vão alguns comandos básicos:

$ crontab -e — para criar e editar um arquivo crontbab.


$ crontab -u username -e — para editar arquivo crontab de outro usuário com
um acesso de superusuário.
$ crontab -l — para visualizar uma lista de arquivos crontab dos usuários atuais.
$ crontab -u username -l — para visualizar a listagem de arquivos crontab de
outros usuários.

Não apenas isso, entender os caracteres corretos vai ajudar você a definir a hora exata
do agendamento pretendido. São eles:

Asterisco (*) — para definir todos os parâmetros.


Vírgula (,) — para mais de um tempo de execução de um único comando.
Hífen (-) — para definir o intervalo de tempo.
Barra inclinada (/) — para criar intervalos de tempo específicos dentro de um
intervalo.
Last (L) — para especificar o último dia da semana.
Weekday (W) — para especificar o dia da semana mais próximo.
Hash (#) — para especificar o dia da semana usando uma variação de números.
Ponto de interrogação (?) — para deixar um espaço em branco.

Então, agora, deixe que a automação de comando faça tudo por você e na hora que
você quiser!

6/6

Você também pode gostar