Sistemas

Un vigilante de disco con cron

Monitorizar el espacio libre de un servidor con un script y cron: silencio

2 min de lectura

Desde hace tiempo me ronda una pregunta: ¿cómo vigilar un servidor sin montar todo un sistema de monitorización corporativo? Hay soluciones por todas partes, pero para un servidor casero me parecen un cañón para matar moscas. Mi respuesta: cron (el planificador de tareas del sistema) y un script.

El problema concreto

En fxserver, el disco donde vive /home se llena rápido cuando alguna automatización se descontrola —los sustos ya los conté en El disco que se llenaba solo. Un disco lleno es una alarma silenciosa: las bases de datos dejan de escribir, los logs (el diario del sistema) crecen sin control y al final nada funciona.

La idea

El programa es mínimo: comprobar el espacio libre, limpiar cachés si hace falta, y avisar solo si después de limpiar el problema continúa.

  • Si queda mucho espacio: silencio. No molesta.
  • Si queda poco: primero intenta limpiar lo regenerable (cachés que se vuelven a descargar solas).
  • Si después de limpiar aún queda poco: aviso claro, con la causa sospechosa.

El silencio es la parte más importante del diseño: si solo habla cuando hay problema, cuando habla le haces caso.

Por qué cron y no un servicio

Cron corre solo, cada 30 minutos, desde hace meses, y no ha pedido nunca nada a cambio. No necesita demonios (programas que viven en la sombra prestando servicios), ni dashboards, ni nada que mantener: un script en bash y una línea en el crontab, el fichero donde cron apunta sus tareas. Para el tamaño de mi proyecto, este equilibrio es exactamente el que tocaba.

El detalle que me ha enseñado la realidad

La primera versión oscilaba entre el silencio y las alarmas inútiles. Aprendí que no es lo mismo "quedan 2 GB" que "he limpiado y siguen bajando": lo segundo es una fuga real, lo primero es mantenimiento normal. Distinguirlos es la diferencia entre un vigilante útil y uno que acabas ignorando.

Y una lección que costó más: cuando algo se escribe en disco bajo un punto de montaje (la carpeta donde conectas un disco o partición) que después se oculta, du —la herramienta que mide cuánto ocupa cada carpeta— no lo ve pero el disco sí que se entera. Las herramientas mienten si no sabes qué hay debajo.