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-17no campo de horas significa "das 9 às 17 horas".,(vírgula): Especifica uma lista de valores. Por exemplo,Mon,Wed,Friou1,3,5para dias da semana./(barra): Especifica valores com um intervalo regular. Por exemplo,*/5no 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/phpem vez dephp. - Você pode definir uma variável
PATHdiretamente 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
@hourlye@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
- Gerenciando Usuários e Grupos
- Monitorando Processos do Sistema
- Tarefas Agendadas com Cron
- Gerenciando Serviços do Sistema com systemd