Skip to content

Introdução ao Task Scheduler

O Task Scheduler (Agendador de tarefas) é usado para automatizar tarefas periódicas no WSL, evitando operações de manutenção manuais repetitivas. Ele fornece uma interface de gerenciamento visual que permite criar e gerenciar tarefas agendadas sem precisar memorizar parâmetros complexos de linha de comando.

Exemplos de uso:

  • Fazer backup regular das distribuições WSL
  • Executar scripts ou comandos personalizados

Todas as tarefas são organizadas em \WSLDashboard\UserTasks\ no Agendador de Tarefas do Windows para gerenciamento centralizado. Você pode visualizar o status em tempo real das tarefas (Pronto / Em execução / Desabilitado) na interface.

Repositório de scripts da comunidade

Você pode baixar scripts de exemplo (backup de distribuição) do repositório da comunidade abaixo para começar rapidamente:

https://github.com/owu/wsl-community

Este é um repositório de código construído por usuários. Sinta-se à vontade para enviar um Pull Request para contribuir com scripts ou compartilhar boas práticas.

Executar comando

Configuração do comando

Cada tarefa agendada pode ser configurada com um comando (script ou executável), com suporte para as seguintes opções:

ConfiguraçãoDescrição
ComandoCaminho do script ou executável. Suporta formatos .bat, .ps1, .cmd, .exe, .py. Use o botão "Procurar" para selecionar um arquivo.
ArgumentosArgumentos adicionais para passar ao comando, opcional.
Privilégios de administradorQuando ativado, a tarefa é executada com privilégios máximos, adequado para operações que exigem elevação UAC.

Operações da tarefa

Após criar uma tarefa, você pode realizar as seguintes operações:

AçãoDescrição
Executar agoraForçar a execução imediata da tarefa, independentemente do agendamento.
Ativar/DesativarPausar ou retomar o agendamento automático da tarefa.
ExcluirRemover a tarefa do Agendador de Tarefas.

Regras de agendamento

Expressão Cron

O agendamento de tarefas usa a expressão Cron padrão de 5 campos para definir regras de execução, no seguinte formato:

minuto hora dia mês dia_da_semana
CampoIntervaloDescrição
minuto0 - 59O minuto da hora para executar
hora0 - 23A hora do dia para executar
dia1 - 31O dia do mês para executar
mês1 - 12O mês do ano para executar
dia_da_semana0 - 70 e 7 representam domingo

Cada campo suporta a seguinte sintaxe:

  • * — Corresponde a todos os valores (ex.: * * * * * significa a cada minuto)
  • */N — A cada N unidades (ex.: */5 * * * * significa a cada 5 minutos)
  • Número único — Corresponde a um valor específico (ex.: 0 9 * * 1 significa toda segunda-feira às 9:00)

Nota: Valores separados por vírgula (ex.: 1,15) e expressões de intervalo (ex.: 1-5) não são suportados. Consulte a seção Observações para mais limitações.

Padrões de combinação suportados

Este software não executa um daemon Cron nativo. Em vez disso, ele traduz expressões Cron para parâmetros de gatilho do Agendador de Tarefas do Windows (schtasks.exe). Para um mapeamento preciso, o analisador possui apenas os seguintes 7 padrões de combinação codificados, cobrindo a grande maioria dos cenários de tarefas agendadas:

#PadrãoDescriçãoCenários de uso
1* * * * *Executar a cada minutoMonitoramento, tarefas de detecção em tempo real
2*/N * * * *Executar a cada N minutosTarefas de verificação periódica
3M * * * *Executar no minuto M de cada hora (ex.: 3 * * * *)Tarefas horárias
4M H * * *Executar diariamente às H:M (ex.: 0 3 * * *)Manutenção diária, como limpar logs de madrugada
5M H * * DOWExecutar em um dia específico da semana às H:M (ex.: 0 12 * * 1)Tarefas semanais, como backup toda segunda-feira
6M H D * *Executar em uma data específica do mês às H:MTarefas mensais, como gerar relatório no dia 1
7M H D MON *Executar em um mês e dia específicos do ano às H:MTarefas anuais, como executar em um mês específico

Se a expressão não se enquadrar em nenhum dos 7 padrões acima, o sistema a considerará como Unsupported cron pattern e recusará a criação.

Observações

Como a implementação é baseada no Agendador de Tarefas do Windows, o analisador Cron deste software difere do Cron Linux padrão nos seguintes aspectos:

1. Listas (,) e intervalos (-) não suportados

O Cron padrão permite definir múltiplos pontos de tempo discretos com vírgulas (ex.: 1,15,30 * * * * significa nos minutos 1, 15 e 30) ou intervalos com hífen (ex.: 1-5 * * * * significa minutos 1 a 5).

Limitação deste software: Cada campo pode conter apenas um número único, asterisco (*) ou passo (*/N). Vírgulas e hífens não são suportados.

2. Combinações livres não suportadas

O Cron padrão permite combinações arbitrárias de campos (ex.: * 3 * * * significa a cada minuto das 3:00 às 3:59), mas este software suporta apenas os 7 padrões fixos listados acima. Expressões fora desses padrões serão rejeitadas.

3. Diferença de alinhamento temporal em padrões de passo

No Cron padrão, */5 * * * * é estritamente alinhado aos minutos 0, 5, 10, 15... do relógio. Este software traduz isso para o parâmetro /SC MINUTE /MO 5 do Windows. O Windows calcula o intervalo a partir do momento em que a tarefa é criada ou ativada.

Por exemplo, se você salvar e ativar uma tarefa que executa a cada 5 minutos às 10:02, ela será executada pela primeira vez às 10:07, depois às 10:12, em vez de alinhada ao 10:05 do relógio padrão.