Você provavelmente já ouviu o tom padrão da WSL antes. O subsistema Windows para Linux fornece aos usuários um ambiente para executar aplicativos, comandos e ferramentas gráficas Linux. Esta etapa é correta, e o fato de você poder acessar o Linux sem inicialização dupla ou criar uma máquina virtual separada é motivo suficiente para instalar o WSL. Mas há outra maneira prática de usá-lo que você talvez não espere. Gosto de aproveitar as vantagens do utilitário cron do Linux para executar scripts automaticamente em meu sistema de arquivos do Windows, acessível nativamente via WSL.
A maioria dos guias de automação do Windows indicará o Agendador de Tarefas e o PowerShell, que certamente são ferramentas capazes. Mas há algo que gosto em usar o cron. Sua configuração é simples; é mais fácil obter uma visão geral de todas as tarefas e não preciso usar a ferramenta do assistente da GUI sempre que quiser agendar algo novo. Além disso, posso criar scripts de tarefas no Bash. A simplicidade do cron e o uso de ferramentas Linux em arquivos do Windows tornam o WSL viável como camada de automação.
Há uma pequena configuração inicial
Configurando o cron para ser executado automaticamente
Uma pequena ressalva é que o WSL (e, portanto, o cron) não inicia automaticamente no Windows. Você deve executar o WSL manualmente para ativar as tarefas automatizadas. Mesmo fechar o WSL posteriormente é bom, mas precisa ser executado uma vez para ativar o serviço em segundo plano. Executar WSL e cron na inicialização é a única coisa para a qual uso o agendador de tarefas. Se você deseja que seus cron jobs entrem em vigor assim que o Windows for carregado, este é um requisito único. A configuração leva apenas alguns minutos e a tarefa apenas mantém o WSL ativo em segundo plano (nada visível para o usuário).
Comece criando uma nova tarefa e dando um nome a ela Inicie o WSL (ou o que você quiser). Não deixe de conferir Execute estando o usuário logado ou não caixa ou não funcionará. Escolher Durante a inicialização gatilho e Inicie o programa para operação. Digitar wsl.exe para o programa e -d Ubuntu-24.04 --exec sleep infinity argumentos, substituindo sua própria distribuição onde disse Ubuntu-24.04. Para o nome exato da sua distribuição WSL, digite wsl -l No terminal PowerShell. Isso é tudo. Agora o WSL e seus cron jobs configurados serão executados quando você iniciar o Windows sem sua intervenção.
Cron oferece ao Windows uma nova maneira de agendar tarefas
Uma alternativa de texto simples para um assistente GUI
Usar o cron dentro do WSL é idêntico ao usá-lo no Linux nativo. Executar crontab -e para começar a identificar empregos. Por exemplo, eu uso esta linha para chamar meu script de backup rsync todas as noites às 2h:
0 2 * * * /home/user/rsync.shObserve que o WSL (e o cron) podem interagir diretamente com o sistema de arquivos do Windows – a unidade C: está por padrão em /mnt/c, mas o WSL também pode ver unidades secundárias ou outro armazenamento que você anexou. Eu uso esta função para que o cron libere a pasta de cache do Windows uma vez por semana (todos domingos à meia-noite):
0 0 * * 0 rm -rf /mnt/c/Users/Username/AppData/Local/Temp/*Sim, eu sei que o Storage Sense já foi projetado para cobrir a limpeza normal do cache. Eu também uso. Mas os menus do Windows muitas vezes carecem de transparência e simplicidade. Usar o cron me dá controle preciso sobre as tarefas automatizadas e não preciso me perguntar quais coisas que não estão listadas na caixa de seleção da GUI podem ou não ser incluídas.
Os executáveis do Windows também podem ser chamados diretamente do cron, o que permite algumas possibilidades interessantes. Parece irônico, mas o cron do WSL pode até atualizar todos os seus aplicativos do Windows. Esta linha usa WinGet para verificar versões mais recentes de todos os softwares instalados e instalar silenciosamente quaisquer atualizações disponíveis:
0 8 * * MON /mnt/c/Users/Username/AppData/Local/Microsoft/WindowsApps/winget.exe upgrade --all --silent --accept-package-agreements --accept-source-agreementsEsta tarefa está configurada para ser executada todas as segundas-feiras às 8h. Para isso, eu diria que usar as ferramentas de automação do próprio Windows é, na verdade, mais difícil. Tarefas que possuem argumentos longos e finais são mais legíveis no cron do que na GUI, e encadeá-las é mais fácil.
WSL nem sempre é a decisão certa
Você ainda pode fazer tudo sem Bash
Para ser justo, tudo o que descrevi também pode ser alcançado sem o WSL. O PowerShell possui integração com o Agendador de Tarefas e um pipeline de objetos melhor que o Bash para determinadas tarefas, incluindo a capacidade de manipular dados estruturados. Se você já possui scripts do PowerShell configurados para suas tarefas automatizadas, não há vantagem em desmontá-los para portá-los para WSL.
A razão pela qual considero a coroa WSL benéfica é que já me sinto confortável escrevendo scripts Bash e queria trazer essa mesma memória muscular para o Windows. Também acho o agendador de tarefas muito complicado de usar, especialmente se o trabalho tiver argumentos longos ou depender de outro script sendo executado primeiro. O Cron lida com ambos com elegância e todo o cronograma está em um arquivo de texto simples que posso ler rapidamente. O PowerShell ainda é a resposta certa se você estiver criando a automação nativa do Windows do zero, mas o WSL é uma boa alternativa se você já tiver experiência em bash e quiser trabalhar da maneira usual.
A WSL não anuncia tudo o que é capaz
WSL se concentra fortemente em seu apelo aos desenvolvedores: o ambiente de construção Linux, contêineres Docker e ferramentas Linux. O ângulo de agendamento e automação é amplamente esquecido, e isso é uma pena. É a ferramenta perfeita para o usuário avançado que deseja apenas que sua máquina Windows cuide de si mesma durante a noite.










