CLI AI

Barre logs y backups viejos con una sola frase

2026-01-25

/var/log es el memento mori del disco. Los servidores funcionan años, la rotación de logs queda mal configurada, y un día una escritura de 4 KB falla porque algún *.log.42.gz de 2023 está acaparando un inode. Limpiar es trivial conceptualmente y operativamente delicado: un glob mal puesto y borraste lo que querías guardar.

Empieza con un listado, no con un borrado

Mira primero, siempre. CliAI no auto-borra, pero la buena costumbre es pedir el listado antes que el rm.

clai
$ clai lista archivos .log con más de 30 días en /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…

Si la lista parece correcta, el siguiente paso es borrar:

clai
$ clai borra archivos de log con más de 30 días en /var/log→ find /var/log -type f -name '*.log*' -mtime +30 -delete[Safety: CAUTION] — irreversible. Pulsa Enter.

CAUTION, no DANGER, porque el path está acotado y el predicado es específico. rm -rf /var/log sería DANGER y se negaría a correr sin tu confirmación explícita.

Backups: conserva los N más recientes

Patrón típico: deja los siete más nuevos, borra el resto.

clai
$ clai conserva los 7 backups .tar.gz más nuevos en /backups, borra el 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 es la parte que nadie recuerda. Fíjate cómo CliAI añadió xargs -r para no ejecutar rm sin argumentos si la lista está vacía — un detalle que te salva cuando el directorio está inesperadamente limpio.

Demostración de DANGER

Para que lo veas: pide algo realmente destructivo y el panel se pone rojo.

clai
┌─ Task ───────────────────────────────────────────────┐│ borra todo en / con más de un año                    │├─ Command ────────────────────────────────────────────┤│ find / -mtime +365 -delete                           │├─ Safety: DANGER ─────────────────────────────────────┤│ Cruza raíces de sistema. Toca /etc, /var, /usr.      ││ Escribe "yes" para confirmar.                        │└──────────────────────────────────────────────────────┘

El clasificador es por regex y no es infalible — el post de seguridad hace cuentas honestas de qué pilla y qué se le escapa. Inspeccionar el comando sigue siendo la última línea de defensa.

Ver también