馃捑 Disco lleno: diagnosticar con df, du y journal

Shared post

Un disco al 100% tumba bases de datos, logs y despliegues. El diagn贸stico r谩pido evita borrar a ciegas.

M谩s all谩 del comando suelto, lo importante es el contexto: cu谩ndo aplicarlo, c贸mo validar el resultado y qu茅 efectos secundarios puede tener en producci贸n.

A continuaci贸n ver谩s el porqu茅, ejemplos concretos con explicaci贸n, un flujo paso a paso, errores t铆picos y buenas pr谩cticas para usarlo con confianza.

馃挕 Orden de ataque

  • Ver particiones llenas
  • Encontrar directorios pesados
  • Limpiar logs/rotados con criterio
  • Tener un procedimiento repetible reduce el tiempo de incidente
  • Documentar el enfoque ayuda al resto del equipo a operar igual de bien

馃殌 Comandos y ejemplos

Uso por partici贸n:

df -h

Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producci贸n.

Top directorios:

sudo du -xh /var --max-depth=2 | sort -h | tail

Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producci贸n.

Ficheros grandes:

sudo find /var -type f -size +200M -ls

Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producci贸n.

Inodos agotados:

df -i

A veces hay espacio en GB pero no en inodos (muchos ficheros peque帽os).

Mayor peso bajo /var:

sudo du -xh /var/log /var/lib /var/cache --max-depth=1 | sort -h

Separa logs, datos de servicios y cach茅s antes de borrar.

馃敡 Ejemplo pr谩ctico paso a paso

1. Mide GB e inodos

df -h
df -i

Decide la rama: sin espacio en bloques vs sin inodos.

2. Encuentra el mount y el directorio culpable

sudo du -xh /var --max-depth=2 | sort -h | tail

Ejemplo: /var/lib/docker o /var/log se comen el disco. No borres a ciegas en /var/lib/mysql.

3. Lista ficheros grandes o demasiados peque帽os

Grandes: find /var -type f -size +500M -ls. Muchos peque帽os: mira colas, spools, sesiones, caches de app.

4. Limpia con el procedimiento del servicio

Logs: journalctl –vacuum-size o rotaci贸n. Docker: prune consciente. Luego df -h otra vez y documenta qu茅 liber贸 espacio.

鈿狅笍 Errores frecuentes

Truncar el binario de la BD o el datadir. Liberar espacio borrando ficheros de PostgreSQL/MySQL es corrupci贸n. Usa herramientas del motor o ampl铆a disco.

Borrar logs abiertos a lo loco. Si un proceso mantiene el fichero abierto, df puede no liberar hasta reiniciar el servicio. Mejor rotaci贸n (logrotate) o truncate controlado + restart si aplica.

No configurar alerta al 80%. Llegar al 100% es el peor momento para aprender du. Alerta antes.

馃挕 Buenas pr谩cticas

  1. No borres directorios de bases de datos sin backup.
  2. Revisa rotaci贸n de logs antes de truncar.
  3. Deja margen (alerta al 80%, no al 100%).
  4. Prefiere cambios reversibles y con rollback claro.
  5. Corrrelaciona siempre con logs y, si puedes, con una m茅trica simple.
  6. Si el procedimiento se repite, convi茅rtelo en script versionado.

馃摑 Conclusi贸n

df + du + find te dicen en minutos d贸nde se fue el espacio.

Si practicas este flujo con calma en staging, en producci贸n te saldr谩 casi autom谩tico. Guarda tus variantes locales (paths, unidades, convenciones del equipo) junto a estos ejemplos.


Shared post