Crontab - Agendando tarefas no Linux.

O crontab é um utilitário do linux que permite o agendamento da execução de um comando, programa e shell scripts para um determinado dia, mês, ano e hora. O crontab utiliza o daemon cron para executar as tarefas definidas para cada usuário.

principais comandos do crontab:

  • Listar as tarefas agendadas para o usuário:
# crontab -l -u usuário
  • Adicionar uma tarefa para o usuário informado:
# crontab -e -u usuário
  • Apagar o arquivo do usuário informado:
# crontab -r -u usuário

Adicionando uma tarefa

Ao adicionar uma tarefa com o comando “crontab -e -u usuário”, veremos a seguinte tela:

Após a última linha comentada, adicione uma tarefa e quando o mesmo será executado. Conforme imagem abaixo:

Acima, temos uma tarefa que será executada todo dia e de hora em hora (Minutos = 00, Horas = *, Dias = *, Meses = *, Dias da semana = *). Observe que após o último asterisco informamos o nome do arquivo em bash, com o seu respectivo caminho de localização. Para adicionar outra tarefa, informe-a na próxima linha.

Veja abaixo exemplos de como ficariam outros horários :

Nas seguintes horas: 11,12,15 aos 15 minutos de cada hora: Minutos = 15 Horas = 11,12,15 Dias = * Meses = * Dias da semana = *

15 11,12,15 * * * /root/atualiza.sh

Nos primeiros cinco dias do mês às 20:30: Minutos = 30 Horas = 20 Dias = 01-05 Meses = * Dias da semana = *

30 20 01-05 * * /root/atualiza.sh

De segunda a sexta ao meio-dia e a meia-noite: Minutos = 00 Horas = 00,12 Dias = * Meses = * Dias da semana = 1-5

00 10,12 * * 1-5 /root/atualiza.sh

Os dias da semana são representados de 0 a 6, sendo Domingo o número 0.

Criando um script de atualização do sistema

Adicione o conteúdo abaixo em um arquivo, salve-o e dê permissão de execução (chmod +x atualiza.sh).

#!/bin/bash
echo "Atualizando sistema..."
sleep 1
apt-get update
apt-get upgrade -y

Para executar:

$ sudo ./atualiza.sh

Agora que já sabemos trabalhar com o utilitário cron, basta agendarmos um horário para o sistema ser atualizado automaticamente. O que acha de fazer um script para backup? Até a próxima.