0Pricing
Linux Server Deployment & SSH Mastery · Aula

Tarefas Agendadas com Cron

Automatize tarefas recorrentes do servidor criando e gerenciando tarefas do cron, garantindo que scripts e comandos sejam executados nos intervalos especificados.

Tarefas Agendadas com Cron é uma aula grátis de Linux Server Deployment & SSH Mastery no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Server Deployment & SSH Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Server Deployment & SSH Mastery inclui 4 aulas no total.

Por que automatizar tarefas do servidor?

As tarefas manuais em um servidor podem ser repetitivas e suscetíveis a erros humanos. A automação ajuda você a economizar tempo e garante que as tarefas sejam executadas de forma consistente.

Imagine precisar fazer backup de um banco de dados todas as noites ou limpar arquivos de registro antigos toda semana. Fazer isso manualmente é entediante e fácil de esquecer.

É aqui que as ferramentas de agendamento são úteis! Elas permitem que seu servidor execute tarefas automaticamente em horários ou intervalos específicos, deixando você livre para trabalhos mais importantes.

Conheça o Cron: o agendador do seu servidor

Cron é um utilitário fundamental do Linux para agendar tarefas. Ele funciona como um assistente pessoal do seu servidor, garantindo que comandos ou scripts sejam executados automaticamente em segundo plano em horários predefinidos.

Essas tarefas agendadas são chamadas de tarefas do cron. Cada usuário de um sistema pode ter sua própria lista de tarefas do cron, armazenada em um arquivo especial chamado crontab.

Editando seu crontab

Para gerenciar suas tarefas pessoais do cron, use o comando crontab.

  • Para editar seu arquivo crontab, digite: crontab -e
  • Para listar suas tarefas atuais do cron, digite: crontab -l
  • Para remover todas as suas tarefas do cron, digite: crontab -r (Use com cuidado!)

Quando você executa crontab -e, seu crontab é aberto no editor de texto padrão, geralmente nano ou vi.

Sintaxe do crontab: os campos de horário

Cada linha do seu crontab representa uma única tarefa do cron e segue um padrão específico. Ela contém cinco campos de horário, seguidos pelo comando a ser executado.

O formato é:

minute hour day_of_month month day_of_week command
  • Minuto: 0-59
  • Hora: 0-23 (0 é meia-noite)
  • Dia do mês: 1-31
  • Mês: 1-12 (ou Jan-Dez)
  • Dia da semana: 0-7 (0 ou 7 é domingo, 1 é segunda-feira)

Sintaxe do crontab: asteriscos e intervalos

Você nem sempre precisa usar números exatos. O Cron oferece caracteres especiais para proporcionar flexibilidade:

  • * (asterisco): Corresponde a todos os valores possíveis desse campo. Por exemplo, * no campo de minutos significa "a cada minuto".
  • - (hífen): Especifica um intervalo. Por exemplo, 9-17 no campo de horas significa "das 9 às 17 horas".
  • , (vírgula): Especifica uma lista de valores. Por exemplo, Mon,Wed,Fri ou 1,3,5 para dias da semana.
  • / (barra): Especifica valores com um intervalo regular. Por exemplo, */5 no campo de minutos significa "a cada 5 minutos".

Sintaxe do crontab: exemplos práticos

Vamos analisar alguns exemplos comuns para reforçar seu entendimento:

  • * * * * * /path/to/script.sh
    É executado a cada minuto.
  • 0 3 * * * /usr/bin/backup.sh
    É executado diariamente às 3:00 AM.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    É executado a cada hora, das 9 AM às 5 PM, de segunda a sexta-feira.
  • */15 * * * * echo "Hello, CoddyKit!"
    É executado a cada 15 minutos.

Lembre-se de substituir /path/to/script.sh pelo caminho do seu comando ou script.

Strings especiais do crontab

Para necessidades de agendamento muito comuns, o Cron fornece strings especiais que são mais fáceis de ler do que a sintaxe de cinco campos:

  • @reboot: Executa uma vez na inicialização.
  • @hourly: Executa uma vez por hora, no início da hora.
  • @daily: Executa uma vez por dia, à meia-noite.
  • @weekly: Executa uma vez por semana, à meia-noite de domingo.
  • @monthly: Executa uma vez por mês, à meia-noite do primeiro dia do mês.
  • @yearly (ou @annually): Executa uma vez por ano, à meia-noite de 1º de janeiro.

Essas opções são ótimas para tarefas simples e recorrentes.

Variáveis de ambiente e caminhos

Quando o cron executa uma tarefa, ele usa um conjunto muito limitado de variáveis de ambiente. Isso geralmente significa que comandos que funcionam no seu terminal podem falhar no cron.

Para evitar problemas:

  • Sempre use caminhos absolutos para comandos e scripts, por exemplo, /usr/bin/php em vez de php.
  • Você pode definir uma variável PATH diretamente no seu arquivo crontab, por exemplo, PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • Como alternativa, defina as variáveis de ambiente diretamente no seu script.

Gerenciando a saída e os registros

Por padrão, o cron tenta enviar por e-mail qualquer saída (stdout e stderr) de uma tarefa do cron para o usuário proprietário do crontab. Se você não tiver um sistema de e-mail configurado, essa saída poderá ser perdida ou preencher os arquivos de registro.

É uma boa prática redirecionar a saída explicitamente:

  • Para descartar toda a saída: command > /dev/null 2>&1
  • Para adicionar a saída ao final de um arquivo de registro: command >> /var/log/myjob.log 2>&1

A parte 2>&1 redireciona o erro padrão (2) para o mesmo local da saída padrão (1).

Cron de todo o sistema versus crontabs de usuários

Concentramos nossa atenção nos crontabs de usuários pessoais, gerenciados com crontab -e. Eles são ideais para tarefas individuais dos usuários.

Para tarefas de todo o sistema, os administradores geralmente usam:

  • /etc/crontab: O crontab principal do sistema, que permite executar tarefas como usuários específicos.
  • /etc/cron.d/: Diretório para arquivos cron separados, geralmente instalados por aplicativos.
  • /etc/cron.hourly/, /etc/cron.daily/, etc.: Diretórios onde os scripts são colocados para serem executados nesses intervalos específicos pelo cron do sistema.

Essas opções no nível do sistema oferecem mais controle para a automação de todo o servidor.

Teste seus conhecimentos sobre o Cron

Você aprendeu os fundamentos da sintaxe do crontab. Vamos ver se consegue decifrar esta tarefa do cron.

Recapitulação: automatize com o Cron

Agora você domina os fundamentos do agendamento de tarefas com o Cron!

Veja o que abordamos:

  • O que é o Cron: Um agendador de tarefas baseado em horários.
  • Crontab: Seu arquivo pessoal para definir tarefas do cron.
  • Sintaxe: Compreensão dos 5 campos de horário e dos caracteres especiais (*, -, ,, /).
  • Strings especiais: Atalhos como @hourly e @reboot.
  • Boas práticas: Usar caminhos absolutos e gerenciar a saída.

Com o Cron, você pode automatizar tarefas rotineiras, garantindo que seu servidor funcione de maneira estável e eficiente!

Perguntas Frequentes

A aula “Tarefas Agendadas com Cron” é grátis?

Sim — o texto completo de “Tarefas Agendadas com Cron” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Server Deployment & SSH Mastery, atualize para CoddyKit PRO. O curso de Linux Server Deployment & SSH Mastery inclui 4 aulas no total.

O que vou aprender em “Tarefas Agendadas com Cron”?

Automatize tarefas recorrentes do servidor criando e gerenciando tarefas do cron, garantindo que scripts e comandos sejam executados nos intervalos especificados. Você pratica Linux Server Deployment & SSH Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Linux Server Deployment & SSH Mastery?

Nenhuma experiência prévia é necessária. Linux Server Deployment & SSH Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Tarefas Agendadas com Cron”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Linux Server Deployment & SSH Mastery?

Sim. Cada aula de Linux Server Deployment & SSH Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Gerenciando Usuários e Grupos
  2. Monitorando Processos do Sistema
  3. Tarefas Agendadas com Cron
  4. Gerenciando Serviços do Sistema com systemd
← Voltar para Linux Server Deployment & SSH Mastery