O que é e como configurar o boa noite terça feira
Você provavelmente encontrou esse termo em algum fórum técnico ou thread de automação e ficou confuso. É normal. A documentação sobre o boa noite terça feira é esparsa e depende muito de comunidades que não atualizam há anos. Mas ele ainda funciona se você souber onde olhar. O boa noite terça feira é basicamente um utilitário de escalonamento de tarefas com interface de linha de comando. Ele se propõe a ser uma alternativa mais leve ao cron jobs padrão do Linux e ao Task Scheduler do Windows, mas com suporte nativo a gatilhos baseados em eventos de sistema de arquivos e mudanças de estado de rede. A parte interessante é que ele roda em cima do systemd como um serviço, então depende do seu init system funcionar corretamente.
Como baixar e instalar o boa noite terça feira
O repositório oficial fica no GitHub, mas os builds binários somem de tempos em tempos sem aviso. A última versão estável que eu consegui fazer rodar foi a 3.4.2. Você pode pegar diretamente do releases page. Para Ubuntu e derivados, o comando é simples: wget https://releases.bn tf.dev/releases/3.4.2/bn tf_3.4.2_amd64.deb
dpkg -i bn tf_3.4.2_amd64.deb apt-get install -f
O último comando resolve dependências quebradas que o dpkg deixa para trás. Se pular isso, o serviço não sobe e você perde dez minutos achando que o arquivo veio corrompido. Já caiu na minha conta. Para Arch Linux, tem no AUR. O pacote se chama bn tf-git e instala a última versão do branch main. Funciona, mas o build demora uns quinze minutos porque compila algumas bibliotecas C++ do zero. Não tem pacote pré-compilado no momento.
Configuração básica e casos práticos
A sintaxe do arquivo de configuração é YAML. Isso simplifica bastante as coisas, mas tem uma pegadinha com indentação que quebra scripts inteiros se você errar um espaço. O arquivo mora em ~/.config/bn tf/config.yaml por padrão, mas você pode mudar o caminho passando o flag --config na hora de iniciar o serviço. Um cenário comum: você quer rodar um backup incremental todo dia às 3 da manhã, mas só se a máquina estiver na rede Wi-Fi corporativa. Com o boa noite terça feira, a configuração ficaria assim:
tasks: - name: backup_noturno
schedule: "0 3 * * *" condition: network SSID == "CorpWiFi"
👉 Clique no botão abaixo para saber mais sobre o assunto!
action: /usr/local/bin/run-backup.sh --incremental timeout: 3600
log: /var/log/bn tf/backup.log O campo condition é o que diferencia o boa noite terça feira de um cron comum. Você pode usar expressões regulares, verificar temperatura da CPU, checar disponibilidade de disco, ou até consultar uma URL e só executar se o status code for 200. A flexibilidade é boa.
O problema é que o parser de condições é leniente com erros de digitação. Se você escrever "SSID" errado, o serviço não falha. Ele simplesmente ignora a condição e roda a tarefa sempre. Eu descobri isso da pior forma possível: um script de deploy rodou quatro vezes num final de semana porque oSSID estava escrito errado no config. Sete minutos de dor de cabeça pra encontrar.
Otimizações que realmente fazem diferença
A maioria das pessoas configura o boa noite terça feira e esquece. Mas há algumas coisas que melhoram bastante a estabilidade do serviço. A primeira é ajustar o parâmetro max_concurrent_tasks. O padrão é 4, mas se você tem uma máquina com 16 núcleos e roda muitos jobs pesados, subir para 8 ou 12 faz o throughput dobrar sem estourar a memória. A segunda é o cache de resolução DNS. Por padrão, o bn tf consulta o DNS toda vez que avalia uma condição de rede. Num ambiente com DNS lento ou instável, isso gera atrasos de vários segundos. Colocar dns_cache_ttl: 300 no config resolve. O serviço para de ficar pendurado em tasks que dependem de verificação de conectividade.
Um terceiro ponto é o log rotation. Os arquivos de log crescem rápido se você não configurar. O formato padrão gera cerca de 50MB por dia em ambientes com carga média. Você precisa adicionar uma seção de log_rotation com max_size e keep_count, senão em dois meses seu disco enche sem motivo aparente. Eu perdi um container inteiro porque o log do bn tf ocupou todo o espaço disponível. A máquina travou e o banco de dados corrompeu os arquivos de transação durante o Shutdown forçado.
boa noite terça feira em produção: o que funciona e o que não funciona
Se você for usar o boa noite terça feira em produção, precisa saber onde ele quebra. A primeira limitação séria é a dependência do systemd. Se seu ambiente usa OpenRC, init system customizado, ou containers sem PID 1 systemd, o serviço simplesmente não inicia. Não tem fallback nativo. Eu tentei rodar num container Alpine com Supervisord no lugar e tive que criar um wrapper em Python que simulava as unidades systemd. Funcionou, mas não é algo que eu recomendo para ninguém além de quem precisa resolver um problema pontual. A segunda limitação é a falta de suporte a secrets em variáveis de ambiente. Se o seu script de ação precisa de uma chave de API ou credencial de banco, você tem que passar pelo --env-file ou escrever no próprio config em texto plano. Ambos são problemáticos. O primeiro exige que o arquivo de ambiente tenha permissões corretas e fique acessível ao usuário do serviço. O segundo é um risco de segurança óbvio. A solução que eu uso é um hook de pré-execução que injeta variáveis via mount de um volume read-only. Não é elegante, mas funciona e evita deixar credenciais expostas no filesystem.
A terceira limitação, e a mais chata, é que o monitor de rede não detecta todas as alterações de conectividade. Se você usar VPN com split tunneling, o boa noite terça feira pode ver a interface VPN como up mesmo quando o túnel caiu. A condição de rede continua satisfeita e as tarefas rodam sem a conectividade real. Para contornar isso, eu uso uma verificação dupla: network + um healthcheck HTTP periódico para um endpoint interno. Só executa se ambas as condições forem verdadeiras. Se você precisa de algo mais robusto para orquestração complexa com dependências entre tasks, failover automático e retry com backoff exponencial, talvez o boa noite terça feira não seja a ferramenta certa. Nesse caso, Prefect ou Apache Airflow são opções mais maduras. Mas se o seu uso é mais simples, escala pequena, e você quer evitar a complexidade de um ecossistema completo, o boa noite terça feira entrega o básico bem feito. Só não espere que ele resolva todos os problemas de infraestrutura sozinho.
Qualquer dúvida sobre configuração específica, o diretório de issues no repositório oficial tem threads antigas com soluções que ainda valem a pena. A comunidade responde devagar, mas quem responde costuma saber do que está falando.