Criação de Apps

Agendar tarefas no computador: Agendador de Tarefas do Windows e cron

Resposta rápida

No Windows, use o Agendador de Tarefas: crie uma tarefa básica, escolha o gatilho (diário, semanal, ao ligar) e indique o programa e o script a executar. No Linux e no Mac, use o cron: edite a lista com o comando crontab -e e escreva uma linha com cinco campos de horário seguidos do comando. Use sempre caminhos completos.

Neste artigo
  1. Antes de agendar: o script precisa funcionar sozinho
  2. No Windows: Agendador de Tarefas
  3. No Linux e no Mac: cron
  4. Por que a tarefa agendada falha
  5. Boas práticas para tarefas que rodam sozinhas
  6. Quando o computador não é o lugar certo

Um script que organiza a pasta de downloads só ajuda se você lembrar de rodar. O passo seguinte é automatizar também isso: dizer ao computador “execute isto todo dia às 8h”. Os sistemas operacionais já trazem ferramentas para isso, e nenhuma exige instalar programa extra.

Este guia mostra o caminho no Windows e no Linux ou Mac, além dos erros que costumam travar quem começa. Os scripts de exemplo podem ser os de automatizar planilhas com Python ou enviar e-mails automáticos.

Antes de agendar: o script precisa funcionar sozinho

Teste o script manualmente e confirme que ele:

  • roda do começo ao fim sem pedir nada ao teclado;
  • não depende de a pasta atual do terminal ser a certa (use caminhos completos);
  • não exige que você tenha uma janela aberta;
  • grava um registro simples do que fez.

Esse registro é essencial: como a tarefa roda em segundo plano, é a única forma de saber se deu certo.

No Windows: Agendador de Tarefas

O Agendador de Tarefas (em inglês, Task Scheduler) vem com o Windows. Para abrir, digite “Agendador de Tarefas” na busca do menu Iniciar. O nome do programa e os rótulos podem variar conforme a versão.

  1. No painel da direita, clique em Criar Tarefa Básica.
  2. Dê um nome e uma descrição, como “Organizar downloads”.
  3. Escolha o gatilho: diariamente, semanalmente, mensalmente, ao iniciar o computador ou ao fazer logon.
  4. Defina o horário e a frequência.
  5. Em Ação, escolha Iniciar um programa.
  6. Em Programa/script, indique o executável. Para Python, o caminho completo do python.exe (para achá-lo, use o comando where python no Prompt de Comando).
  7. Em Adicionar argumentos, coloque o caminho completo do seu arquivo .py, entre aspas se tiver espaços.
  8. Em Iniciar em, coloque a pasta onde o script e os arquivos estão.
  9. Conclua e, para testar, clique com o botão direito na tarefa e escolha Executar.

Opções úteis nas propriedades da tarefa

Depois de criada, abra as propriedades da tarefa para ajustar:

  • Executar estando o usuário conectado ou não: permite rodar sem a sessão aberta, mas pede a senha da conta.
  • Executar assim que possível após uma inicialização agendada perdida: compensa o computador desligado no horário.
  • Parar a tarefa se ela for executada por mais de: evita que um script travado fique rodando para sempre.
  • Aba Histórico: mostra quando a tarefa foi iniciada e o resultado.

No Linux e no Mac: cron

O cron é o agendador clássico dos sistemas baseados em Unix. Cada usuário tem uma lista de tarefas chamada crontab. Para editar, digite no terminal crontab -e.

Cada linha tem cinco campos de tempo e depois o comando:

  1. minuto (0 a 59);
  2. hora (0 a 23);
  3. dia do mês (1 a 31);
  4. mês (1 a 12);
  5. dia da semana (0 a 7, onde 0 e 7 são domingo).

O asterisco significa “qualquer valor”. Alguns exemplos de horário, em palavras:

  • minuto 0, hora 8, os outros campos com asterisco: todo dia às 8h;
  • minuto 30, hora 18, dia da semana 5: toda sexta às 18h30;
  • minuto 0, hora 0, dia do mês 1: no primeiro dia de cada mês, à meia-noite.

Depois dos cinco campos vem o comando completo, como o caminho do Python seguido do caminho do script. Para saber o caminho do Python, use which python3. Para ver a lista atual, use crontab -l.

No Mac, o cron funciona, mas o sistema também tem o launchd como ferramenta mais moderna de agendamento. Para tarefas simples, o cron costuma bastar, e o sistema pode pedir permissões extras de acesso a pastas.

Por que a tarefa agendada falha

Os motivos mais frequentes:

  • Caminho relativo: o script abre “dados.xlsx” sem caminho completo e a tarefa, que começa em outra pasta, não encontra.
  • Python errado: a máquina tem várias versões ou ambientes virtuais. Aponte para o Python do ambiente do projeto (veja ambiente virtual no Python).
  • Variáveis de ambiente ausentes: senhas e chaves que estavam configuradas no terminal não existem na tarefa. Veja variáveis de ambiente e arquivo .env.
  • Permissões: a conta que executa a tarefa não tem acesso à pasta ou à rede.
  • Computador desligado ou suspenso no horário.
  • Senha da conta alterada no Windows, o que quebra tarefas configuradas para rodar sem sessão aberta.

Para investigar, leia o registro do script e a mensagem de erro. Dicas de leitura estão em como ler mensagens de erro e depurar código.

Boas práticas para tarefas que rodam sozinhas

Uma tarefa agendada roda sem ninguém olhando, então ela precisa ser confiável por conta própria:

  • Registre tudo. Grave data, hora e resultado de cada execução num arquivo de log.
  • Avise quando falhar. Um e-mail ou notificação simples evita descobrir o problema semanas depois.
  • Evite sobreposição. Se a tarefa demora mais do que o intervalo, duas cópias podem rodar ao mesmo tempo e brigar pelos mesmos arquivos.
  • Escolha bem o horário. Evite horários em que o computador costuma estar em uso intenso ou desligado.
  • Revise de vez em quando. Confira se a tarefa ainda faz sentido e se os caminhos continuam válidos.

Anote também, num arquivo de texto, o que cada tarefa faz e onde está o script. Daqui a meses, será a sua melhor documentação.

Quando o computador não é o lugar certo

Tarefas que precisam rodar sempre, mesmo com seu PC desligado, ficam melhor em um servidor ou serviço em nuvem que tenha agendamento próprio. Para uso pessoal, o agendador do computador resolve. Comece com uma tarefa simples, confirme que o registro mostra a execução e só então agende as mais importantes.

  • Automação
  • Windows
  • Linux

Perguntas frequentes

O computador precisa estar ligado para a tarefa agendada rodar?

Sim. Se estiver desligado ou suspenso no horário, a tarefa não roda, a menos que você configure para executar assim que possível depois do horário perdido, opção que o Agendador do Windows oferece. Para tarefas críticas, use um servidor que fique ligado.

Por que o script roda no terminal mas não pela tarefa agendada?

Quase sempre é por causa de caminhos. A tarefa agendada começa em outra pasta e pode não enxergar as mesmas variáveis de ambiente. Use caminhos completos para o programa, o script e os arquivos que ele lê.

Como saber se a tarefa agendada funcionou?

Faça o script gravar um arquivo de registro com data e hora de cada execução, inclusive quando falhar. No Windows, o histórico da tarefa e o campo de resultado da última execução também ajudam.

Leia também

Criação de Apps

Ambiente virtual no Python: venv e pip para não bagunçar seus projetos

Como isolar cada projeto Python com seus próprios pacotes e evitar conflitos de versão.

· 5 min de leitura
Criação de Apps

Automatizar planilhas com Python: ler, somar e salvar sem copiar

Um roteiro para usar Python em tarefas de planilha que você repete toda semana.

· 5 min de leitura
Criação de Apps

Enviar e-mails automáticos com Python sem expor sua senha

Passo a passo para mandar e-mails por script, com os cuidados de segurança que muita gente esquece.

· 5 min de leitura
Criação de Apps

Variáveis de ambiente e arquivo .env: senhas fora do código

O jeito certo de guardar chaves de API, senhas de banco e outros segredos do seu projeto.

· 5 min de leitura

Deixe seu comentário