Imagine se você pudesse automatizar todas aquelas tarefas repetitivas do seu cotidiano como executar backups, monitorar o espaço em disco, excluir arquivos desnecessários, executar tarefas de manutenção do sistema, entre muitas outras tarefas? Existe um utilitário chamado cron que pode te ajudar nisso.

O que é cron job e cron?

Quando falamos de cron, falamos de uma ferramenta utilizada para agendar tarefas em um horário específico. Imagine que diariamente às 14:00 você precise excluir arquivos de log, por exemplo, você pode utilizar a ferramenta cron para automatizar esta rotina. Cada rotina que você automatiza com o cron é chamada cron job.

Como criar cron jobs?

Para criarmos um cron jobs, precisamos conhecer mais um termo, o crontab. O crontab é o arquivo onde você definirá qual tarefa será executada e com que frequência. Um crontab pode possuir vários cron jobs em um formato tabular onde cada linha é um cron job diferente.

2022 03 23 12 51

Criando um arquivo crontab

Para criar ou editar um arquivo crontab para o usuário atual, basta rodar o comando:

crontab -e

Se você estiver executando o comando pela primeira vez, será solicitado a escolher o editor de texto de sua preferência para editar o seu crontab.

2022 03 23 13 01

Caso não seja solicitado ou o seu editor favorito não aparecer, não se preocupe. Você poderá editar o seu crontab utilizando o seu editor favorito rodando o comando:

EDITOR=<seueditorfavorito> crontab -e
2022 03 23 12 43

Caso haja necessidade de editar um arquivo crontab de outro usuário, primeiro você precisa logar como super usuário (root) com o comando:

sudo su -

Após logar como super usuário, rode o seguinte comando para editar um crontab de outro usuário:

crontab -u nomedousuario -e
2022 03 23 13 00

Removendo arquivo crontab

Para remover o arquivo crontab do usuário atual é muito simples, basta utilizar o comando:

crontab -r

Removendo arquivo crontab com segurança

O comando “crontab -r” faz perfeitamente o seu trabalho, porém, caso você rode o comando por acidente, você acabará removendo um arquivo crontab contra a sua vontade.

Para evitar que isso ocorra, você pode remover o arquivo crontab utilizando o comando:

crontab -ri

O “crontab -ri” faz a mesma coisa que o comando “crontab -r”, a diferença é que ele pergunta se você tem certeza do que está fazendo antes de executar a ação:

2022 03 23 13 19

Exibindo os conteúdos do arquivo crontab

Se você precisar visualizar os conteúdos existentes no arquivo crontab do usuário logado, basta digitar o comando:

crontab -l
2022 03 23 14 49

Conhecendo a sintaxe do cron

Você deve estar se perguntando: “Tudo bem, já sei o que é cron, cron jobs e crontab, mas como eu faço para começar a utilizar o cron efetivamente, o que eu devo inserir no arquivo crontab para agendar as minhas tarefas?”

A sintaxe do cron pode ser um pouco intimidadora à primeira vista. Porém, não se preocupe, iremos “decodificar” elemento por elemento para você se sentir menos perdido.

Um arquivo crontab contém 5 campos, sendo cada um deles representado por um asterisco, que determinam a data e a hora que certa tarefa é programada.

Usaremos como exemplo um cron job que cria um arquivo chamando “testando_crontab” na pasta pessoal do usuário todos os domingos às 04:05:

2022 03 23 18 28

Abaixo o significado de cada um dos asteriscos:

2022 03 23 16 18
  • Minuto: é o minuto da hora em que o comando vai rodar, variando de 0 a 59;
  • Hora: trata-se da hora em que o comando será executado, variando de 0 a 23;
  • Dia do mês:  é o dia do mês em que o comando vai rodar, variando de 1 a 31;
  • Mês: é o mês em que o comando será executado, variando de 1 a 12;
  • Dia da semana: trata-se do dia da semana que você quer que o comando rode, variando de 0 a 7.

Existem também alguns caracteres importantes para a sintaxe Cron:

  • 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 (/): 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.

Exemplos de sintaxe cron

Agora que você já se familiarizou com a sintaxe Cron, mostraremos mais alguns exemplos para você poder compreender melhor as regras e começar a praticar para fixar.

1 – Para executar um cron job a cada 5 minutos:

2022 03 24 12 24

2 – Executando um cron job a cada 2 horas:

2022 03 24 12 24 1

3 – Para executar um cron job todos os domingos:

2022 03 24 12 25

4 – Executando um cron job todos os dias úteis da semana:

2022 03 24 12 25 1

5 – Para executar um cron job às 19h45 no primeiro dia de cada mês:

2022 03 24 12 26

Geradores de sintaxe Crontab

Agora que você já se familiarizou com a sintaxe do cron e percebeu que não é nada tão assustador quanto parecia ser, saiba que você não precisa gerar seus arquivos crontab de forma manual sempre, não precisa memorizar. Há alguns geradores de sintaxe crontab baseados na web disponíveis para tornar esse trabalho ainda mais fácil.

Crontab guru

O Crontab guru é um aplicativo web que auxiliará você na criação de cron jobs. Funciona de maneira bastante simples, basta inserir suas entradas no site e ele criará instantaneamente uma sintaxe crontab.

2022 03 24 11 45

Crontab Generator

O Crontab Generator é outro app web que ajudará na criação de cron jobs. Trata-se de um formulário que possui várias entradas, você deve escolher todos os campos obrigatórios no formulário e, por fim, gerar sua expressão crontab de forma rápida e fácil.

2022 03 24 12 02

Cron e shell script, uma excelente combinação

Utilizando o cron, você também pode agendar um programa shell script, como, por exemplo, um script que faz backup de tudo que é necessário todos as sextas às 00:00:

0 0 * * 5 /bin/sh backup.sh

Porém, antes de criar um shell script que faça um backup e agendá-lo com o cron, é necessário, é claro, que você saiba como escrever um programa em shell script. Para isso, o Diolinux Play em parceria com o SlackJeff está oferecendo um curso de Shell Script avançado totalmente grátis. Inscreva-se agora mesmo se você quer aprender tudo sobre Shell Script para automatizar suas tarefas do cotidiano e tornar o seu dia a dia mais produtivo.

E você, utiliza o cron para agendar as tarefas repetitivas do seu dia a dia?

Um abraço, galera.
Até a próxima.


Newsletter Diolinux
Talvez Você Também Goste
quickgui
Continue lendo

Como instalar o Quickgui

Aprenda a instalar o Quickgui, uma alternativa fácil de usar para gerenciar máquinas virtuais em modo gráfico no Linux.