Configurar Tarefas Agendadas

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como configurar tarefas agendadas no Linux. Explorará duas ferramentas poderosas: o comando watch para executar comandos repetidamente em intervalos curtos e o utilitário crontab para agendar tarefas para serem executadas em horários específicos. Essas habilidades são essenciais para administradores de sistema e qualquer pessoa que precise automatizar tarefas recorrentes em um sistema Linux.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 92%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Usar o Comando watch

O comando watch permite que você execute um comando repetidamente e visualize sua saída em tempo real. Isso é útil para monitorar alterações ou executar um comando em intervalos curtos e regulares.

  1. Abra seu terminal. Você deve estar no diretório /home/labex/project. Se não tiver certeza, você sempre pode verificar seu diretório atual com o comando pwd.

  2. Usaremos watch para exibir a data e hora atuais a cada 5 segundos. Digite o seguinte comando:

    watch -n 5 date

    Aqui está o que este comando faz:

    • watch é o comando que estamos usando para repetir outro comando.
    • -n 5 é uma opção que diz ao watch para esperar 5 segundos entre cada execução. Se você omitir isso, watch usará um intervalo padrão de 2 segundos.
    • date é o comando que watch executará repetidamente. Ele exibe a data e hora atuais.
  3. Após inserir o comando, você deverá ver uma exibição em tela cheia que é atualizada a cada 5 segundos. Ele se parecerá com isto:

    watch command output example

    A linha superior mostra o comando sendo executado e com que frequência ele está sendo atualizado. O restante da tela mostra a saída do comando date.

  4. Para sair do comando watch, pressione Ctrl+C. Esta combinação de teclas é comumente usada no Linux para terminar um comando em execução.

    Se você não parar o comando watch, ele continuará sendo executado indefinidamente, o que pode impedir que você insira novos comandos em seu terminal.

Instalar o Crontab

Antes de podermos usar o crontab para agendar tarefas, precisamos garantir que ele esteja instalado em nosso sistema. A maioria das distribuições Linux vem com o crontab pré-instalado, mas é uma boa prática verificar e instalá-lo, se necessário.

  1. Primeiro, vamos verificar se o crontab já está instalado. Podemos fazer isso tentando executar o comando crontab:

    crontab -l

    Se o crontab estiver instalado, você verá uma lista de seus trabalhos cron atuais ou uma mensagem dizendo "no crontab for labex".

  2. Se você vir uma mensagem de erro dizendo que o comando não foi encontrado, precisaremos instalar o crontab. Em sistemas baseados em Ubuntu ou Debian, podemos instalá-lo usando os seguintes comandos:

    sudo apt update
    sudo apt install cron

    Você será solicitado a inserir sua senha. Digite-a (observe que você não verá nenhum caractere enquanto digita por motivos de segurança) e pressione Enter.

  3. Após a instalação, inicie o serviço cron:

    sudo service cron start

    Este comando inicia o serviço cron imediatamente.

  4. Agora, verifique se o cron está instalado e em execução:

    sudo service cron status

    Você deve ver uma saída indicando que o serviço cron está em execução.

Introdução ao Crontab

Agora que temos o crontab instalado, vamos explorar como usá-lo. O Crontab é usado para agendar tarefas em horários específicos, mesmo quando você não está logado.

  1. Primeiro, vamos visualizar suas entradas atuais do crontab (se houver). Use o seguinte comando:

    crontab -l

    A opção -l significa "list" (listar). Este comando exibe todas as tarefas agendadas em seu crontab.

    Se você ainda não configurou nenhum trabalho cron, verá uma mensagem dizendo "no crontab for labex". Isso é normal para um novo usuário.

  2. Agora, vamos abrir o crontab para edição. Use este comando:

    crontab -e

    A opção -e significa "edit" (editar). Este comando abre seu arquivo crontab em um editor de texto.

    Se esta é a sua primeira vez usando o crontab, você pode ser solicitado a escolher um editor. Você verá uma lista de números correspondentes a diferentes editores. Para iniciantes, o nano (geralmente a opção 1) é uma boa escolha porque é mais simples de usar. Digite o número do nano e pressione Enter.

    Selecting an editor

    Se você não for solicitado a escolher um editor, não se preocupe. Isso significa que um editor padrão já foi configurado para você.

  3. Assim que o editor abrir, você verá um arquivo vazio (ou quaisquer trabalhos cron existentes, se você tiver algum). Não adicione nada ainda; faremos isso em uma etapa posterior. Por enquanto, apenas familiarize-se com o editor.

    Se você estiver usando o nano, verá alguns comandos de ajuda na parte inferior da tela. O símbolo ^ representa a tecla Ctrl. Portanto, ^X significa "Ctrl+X", que é usado para sair do nano.

  4. Saia do editor sem fazer nenhuma alteração. No nano, você pode fazer isso pressionando Ctrl+X. Se você for perguntado se deseja salvar as alterações, pressione 'N' para Não.

Entendendo a Sintaxe do Crontab

Antes de adicionarmos um trabalho cron, é crucial entender a sintaxe. O Crontab usa um formato específico para determinar quando uma tarefa deve ser executada.

  1. O formato básico de um trabalho cron é:

    * * * * * command_to_execute

    Cada asterisco representa uma unidade de tempo específica, da esquerda para a direita:

    1. Minuto (0-59)
    2. Hora (0-23)
    3. Dia do mês (1-31)
    4. Mês (1-12)
    5. Dia da semana (0-7, onde 0 e 7 representam domingo)
  2. Aqui estão alguns exemplos para ajudá-lo a entender:

    • 30 2 * * * significa "Às 2:30 da manhã, todos os dias"
    • 0 9 * * 1-5 significa "Às 9:00 da manhã, de segunda a sexta-feira"
    • */15 * * * * significa "A cada 15 minutos"
  3. Você pode usar os seguintes caracteres especiais:

    • *: qualquer valor
    • , : separador de lista de valores
    • -: intervalo de valores
    • /: valores de passo
  4. Vamos analisar um exemplo mais complexo:
    15,45 9-17 * * 1-5 /path/to/script.sh
    Isso significa: "Executar /path/to/script.sh aos 15 e 45 minutos de cada hora, das 9h às 17h, de segunda a sexta-feira"

Entender essa sintaxe é fundamental para criar trabalhos cron eficazes. Reserve um tempo para pensar em como você pode agendar diferentes tarefas usando este formato.

Adicionar um Cron Job

Agora que entendemos a sintaxe, vamos adicionar um trabalho cron simples que grava a data atual em um arquivo a cada minuto.

  1. Abra seu crontab para edição:

    crontab -e
  2. Assim que o editor abrir, adicione a seguinte linha ao seu crontab:

    * * * * * date >> /home/labex/project/date_log.txt
    Cron job editor screenshot

    Vamos detalhar isso:

    • Os cinco asteriscos * * * * * significam "a cada minuto de cada hora de cada dia de cada mês e cada dia da semana".
    • date é o comando que estamos executando.
    • >> é usado para anexar a saída a um arquivo (em vez de sobrescrevê-lo).
    • /home/labex/project/date_log.txt é o arquivo onde estamos armazenando a saída.
  3. Salve e saia do editor. Se você estiver usando o nano:

    • Pressione Ctrl+X para sair
    • Pressione Y para confirmar que deseja salvar as alterações
    • Pressione Enter para confirmar o nome do arquivo
  4. Depois de sair, você deverá ver uma mensagem dizendo "crontab: installing new crontab". Isso confirma que suas alterações foram salvas.

Monitorar seu Cron Job

Agora que configuramos um trabalho cron, vamos verificar se ele está funcionando corretamente.

  1. Primeiro, precisamos esperar pelo menos um minuto após adicionar o trabalho cron. Isso ocorre porque os trabalhos cron são executados a cada minuto, então pode levar até um minuto para que seu trabalho seja executado pela primeira vez.

  2. Após esperar, use o comando cat para visualizar o conteúdo do arquivo de log:

    cat /home/labex/project/date_log.txt

    O comando cat exibe o conteúdo de um arquivo diretamente no terminal.

  3. Você deve ver pelo menos uma linha com uma data e hora. Terá uma aparência semelhante a esta:

    Sat Aug  5 10:15:01 UTC 2023

    Se você não vir nada, espere mais um minuto e tente novamente. Às vezes, pode levar um momento para o trabalho cron começar a ser executado.

  4. Para ver o trabalho cron em ação, você pode usar o comando watch que aprendemos anteriormente para monitorar o arquivo em tempo real:

    watch -n 60 cat /home/labex/project/date_log.txt

    Isso será atualizado a cada 60 segundos, mostrando as novas entradas à medida que são adicionadas.

  5. Deixe isso rodar por alguns minutos. Você deve ver uma nova linha adicionada a cada minuto.

  6. Quando terminar de observar, pressione Ctrl+C para sair do comando watch.

Resumo

Parabéns! Você concluiu com sucesso o laboratório "Configurar Tarefas Agendadas". Você aprendeu a:

  1. Usar o comando watch para executar comandos repetidamente em curtos intervalos.
  2. Instalar e configurar o crontab em seu sistema.
  3. Visualizar e editar seu crontab usando crontab -l e crontab -e.
  4. Entender a sintaxe do crontab para agendar tarefas.
  5. Criar um trabalho cron simples que é executado a cada minuto.
  6. Monitorar a saída do seu trabalho cron.

Essas habilidades são fundamentais para automatizar tarefas e monitorar sistemas em ambientes Linux. À medida que você continua sua jornada no Linux, você encontrará muitos mais usos para tarefas agendadas na administração e automação de sistemas.

Lembre-se, embora tenhamos usado um exemplo simples de registro da data, você pode usar trabalhos cron para tarefas mais complexas, como fazer backup de dados, atualizar software ou executar scripts de manutenção do sistema. Tenha sempre cuidado ao configurar trabalhos cron, especialmente se eles envolverem operações críticas do sistema.