CLI AI

Varra logs e backups antigos com uma frase

2026-01-25

/var/log é o memento mori do disco. Servidores rodam anos, a rotação de log fica mal configurada, e um dia uma escrita de 4 KB falha porque algum *.log.42.gz de 2023 ocupou um inode. Limpar é conceitualmente trivial e operacionalmente arriscado: um glob errado e você apagou o que queria guardar.

Comece com listar, não com apagar

Olhe primeiro, sempre. O CliAI não apaga sozinho, mas o bom hábito é listar antes do rm.

clai
$ clai liste arquivos .log com mais de 30 dias em /var/log→ find /var/log -type f -name '*.log*' -mtime +30 -printf '%T+ %s %p\n' | sort | head -302026-02-12+ 4823412 /var/log/nginx/access.log.42.gz2026-02-15+ 1240881 /var/log/syslog.4.gz…

Se a lista parece certa, o próximo passo é apagar:

clai
$ clai apaga arquivos de log com mais de 30 dias em /var/log→ find /var/log -type f -name '*.log*' -mtime +30 -delete[Safety: CAUTION] — irreversível. Pressione Enter.

CAUTION, não DANGER, porque o caminho está delimitado e o predicado é específico. rm -rf /var/log seria DANGER e se recusaria a rodar sem confirmação explícita.

Backups: mantenha os N mais novos

Padrão comum: mantenha os sete mais novos, apague o resto.

clai
$ clai mantenha os 7 backups .tar.gz mais novos em /backups, apague o resto→ ls -1t /backups/*.tar.gz | tail -n +8 | xargs -r rm -vremoved '/backups/2026-03-15.tar.gz'removed '/backups/2026-03-14.tar.gz'

tail -n +8 é a parte que ninguém lembra. O CliAI adicionou xargs -r para não rodar rm sem argumentos se a lista vier vazia — uma minúcia que salva quando o diretório está inesperadamente limpo.

DANGER em demo

Pra você ver: peça algo de fato destrutivo e o painel fica vermelho.

clai
┌─ Task ───────────────────────────────────────────────┐│ apague tudo em / com mais de um ano                  │├─ Command ────────────────────────────────────────────┤│ find / -mtime +365 -delete                           │├─ Safety: DANGER ─────────────────────────────────────┤│ Cruza raízes de FS. Atinge /etc, /var, /usr.         ││ Digite "yes" para confirmar.                         │└──────────────────────────────────────────────────────┘

O classificador é por regex e não é infalível — o post sobre safety lista honestamente o que captura e o que escapa. Ler o comando ainda é a última linha de defesa.

Veja também