Crontab: Entenda Como Agendar Tarefas No Linux De uma Vez Por Todas

Fazer a entrega diária de um documento ou realizar determinados processos no fim do expediente são tarefas comuns na rotina de trabalho. Contudo, essas atividades corriqueiras, embora importantes, são muito passíveis de esquecimento — é por isso que o Linux disponibiliza a ferramenta Crontab.

O Crontab nos permite agendar as tarefas para que elas sejam executadas automaticamente. O usuário pode, por exemplo, configurar o sistema para que um lembrete seja impresso na tela com a frequência de dias e horários que ele quiser. O mesmo pode ser feito para agendar scripts e comandos do Linux.

Quer saber mais sobre o Crontab e sua utilidade para ambientes de trabalho? Confira, neste artigo, como funciona o serviço e suas configurações, bem como exemplos práticos de uso.

crontab como agendar no linux

APRENDA A DOMINAR O LINUX

Aprenda a dominar o LINUX de uma vez por todos, pegue sua cópia

  • Ferramentas para instalar softwares adicionais
  • Shell do LINUX passo a passo, e muito mais...

Entendendo o que é Crontab

Antes de explorar o Crontab, é necessário apresentar a você o Cron. Trata-se de um programa do Linux executável em segundo plano (ou seja, um daemon), capaz de executar tarefas automaticamente.

Como o serviço funciona? Quando iniciado, o Cron faz uma varredura (a cada minuto) pelos diretórios que possam conter arquivos nos quais estão guardados os scripts agendados pelo usuário.

O propósito da examinação não é somente o de encontrar tarefas novas, mas, principalmente, de saber se há alguma atividade programada para o momento.

Vale destacar, também, que o Cron é um programa de nível multiusuário. Isso significa que cada usuário pode agendar suas tarefas individualmente, graças ao próprio arquivo onde são armazenados os scripts: o Crontab.

Sim, o Crontab é uma ferramenta para gerar arquivos a serem lidos pelo Cron. Como o próprio nome diz, a estrutura do Crontab consiste em tabelas. Nessas tabelas são preenchidas todas as informações referentes à tarefa:

  • minutos;
  • horas;
  • dias do mês;
  • mês;
  • dias da semana;
  • usuário; e
  • comando.
Leia também ...   Node.js: Entenda o que é e como funciona essa tecnologia

Portanto, quando o arquivo Crontab é gerado, o Cron faz a identificação dele e, em seguida, interpreta os dados e parâmetros registrados na tabela. Nitidamente, o Cron e o Crontab se baseiam na ideia de operador e cronograma de trabalho (ou o humano e sua agenda, se preferir).

Opções de configuração do Crontab

A configuração padrão para arquivos do Cron está localizada no arquivo /etc/crontab, a qual apresenta as seguintes informações:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

A primeira linha (SHELL) determina o sistema em que o ambiente Shell será usado. A variável PATH é onde está definido o caminho usado para executar comandos.

Em MAILTO, o usuário tem a opção de receber e-mails de saída do Cron; caso não deseja recebê-los, marque como MAILTO=””. Por fim, o HOME permite configurar um diretório “home” para executar comandos e scripts.

Cada uma das demais linhas representa uma tarefa. Para interpretá-la, é necessário entender a sintaxe do Crontab, conforme veremos a seguir.

Primeiramente, dividimos as informações em seis partes (da esquerda para a direita):

Minuto (0 a 59) | Hora (0 a 23) | Dia (1 a 31) | Mês (1 a 12)| Dia da semana (0 a 7) | Comando (comando a ser executado).

Ou seja, para cada campo será digitado um valor correspondente às regras acima. Detalhe: o dia da semana oferece oito possibilidades, sendo que os valores 0 e 7 significam domingo.

Observação: na configuração mostrada no início do tópico, nas linhas que representam as tarefas há um elemento chamado “run-parts”. Ele serve para executar scripts naqueles diretórios.

Caracteres especiais e suas funções

Em meio a uma instrução do Crontab é comum que o usuário se depare com alguns caracteres / símbolos que têm funções específicas, como asterisco (*), vírgula (,), hífen (-) e barra (/). Vejamos o que eles significam.

Leia também ...   Distribuição Linux com Suporte Corporativo, será que vale a pena?

Asterisco

O asterisco serve para especificar que todos os valores do campo serão validados. Vamos supor que um determinado comando tenha de ser executado diariamente durante o mês; para configurar o Crontab, basta inserir o asterisco no campo “Mês”.

Hífen

O sinal de hífen é usado para especificar um intervalo. Por exemplo, se o comando deve ser executado somente em dias úteis (segunda a sexta), o campo “Dia” deve ser preenchido da seguinte maneira: 1-5.

Vírgula

As vírgulas têm a função de listar uma sequência de valores. É uma opção ideal para agendar momentos esporádicos, como uma tarefa a ser executada nos dias 4, 15 e 19 do mês. No caso, o preenchimento do campo “Dia” ficaria: 4, 15, 19.

Barra

A barra frontal (forward slash, do inglês), por sua vez, especifica a etapa dos valores. Supondo que seja inserido o valor 0-55/5 (ou */5), a tarefa será executada a cada cinco minutos.

Hash

Assim como no ambiente de programação, o símbolo hash (#) é usado para adicionar comentários em uma instrução. Deste modo o conteúdo não será processado pela ferramenta.

Fácil de entender, não é mesmo? Por meio dessa sintaxe é possível criar diversos tipos de agendamento pelo Cron, conforme os exemplos que veremos a seguir.

5 exemplos de uso do Crontab

Agora que já falei sobre a função do Contrab de gerar arquivo para o Cron e como fazer as configurações de agendamento, vejamos 5 exemplos de como ele pode ser usado para desempenhar tarefas comuns.

1. Exibição das tabelas do Cron

Usando o comando -l, o arquivo Crontab do usuário será listado no terminal.

crontab -l

55 * * * 5 /bin/sh /home/root/bin/backup.sh

2. Deletar todas as tarefas

Para remover todas as tarefas agendadas no arquivo Crontab do usuário, liste-as usando o comando -l e, depois, use o -r:

crontab -l

55 * * * 5 /bin/sh /home/root/bin/backup.sh

crontab -r

crontab -l

no crontab for root

Leia também ...   10 Formas de Utilizar o Comando find do Sistema LINUX que você nunca imaginou que iria precisar saber

4. Editar o arquivo Crontab

Quer editar um arquivo Crontab? Utilize o comando crontab -e. Automaticamente, um editor será aberto.

# crontab -e

31 06 * * 4 /bin/sh /home/root/bin/alerta-user

~

~

/tmp/crontab.8fjist

5. Executar o script usando PHP

O comando “crontab -e” pode ser acionado, inclusive, para executar um script usando PHP. Para executar “script-exemplo.php” a cada uma hora, faça o seguinte:

# crontab -e

00 * * * * /usr/local/bin/php /home/root/script-exemplo.php

Observação: para que esta dica funcione é necessário ter acesso ao shell do Linux. Se você estiver navegando em um servidor limitado ao FTP para salvar documentos, o script deverá ser executado usando uma URL — para aprender como fazê-lo, recomendo a leitura deste artigo.

Considerando essas e outras possibilidades do Crontab, conclui-se que o serviço é bastante útil para prevenir-se a falhas e, de quebra, automatizar tarefas que tomam atenção e tempo dos colaboradores.

Após aprender sobre tudo o que abordei no artigo, o quanto você acredita que o Crontab será útil para a sua carreira?

Sempre lembrando que a oportunidade de se aprimorar no sistema Linux (significativamente) está a um clique. Acesse agora mesmo uma aula de dentro da formação completa, Profissionais Linux e descubra como dominar o sistema.

Sobre pedrodelfino

Trabalha a mais de 14 anos com administração de sistemas LINUX, dedicado em ensinar novos profissionais a atuar com servidores. Saiba mais aqui. "Caso queira participar de uma aula online comigo utilize o formulário Acima"