Cómo Ver el Estado de los Discos en un Servidor Linux
Saber en todo momento qué está pasando con el almacenamiento de tu servidor es una de las tareas más básicas —y más descuidadas— de la administración de sistemas. Un disco lleno puede tirar abajo un sitio web, corromper bases de datos o bloquear el sistema de logs. Y un disco con errores SMART que nadie vigila puede fallar sin previo aviso llevándose datos críticos.
En esta guía vas a ver, paso a paso, todos los comandos necesarios para tener el estado completo de los discos de tu servidor Linux: espacio disponible, particiones montadas, uso por directorio, información del hardware y diagnósticos de salud. Sin rodeos.
Importante: si tienes un VPS Linux o Windows en BlumHost, estos comandos funcionan directamente en tu servidor Ubuntu o Debian sin necesidad de instalar nada adicional. Para servidores compartidos, la gestión del espacio la tienes integrada en cPanel.
1. Ver el espacio disponible en disco con df
El comando df (disk free) es el punto de partida para cualquier diagnóstico de almacenamiento. Muestra el espacio total, usado y disponible en cada sistema de archivos montado.
Uso básico
df -h
Salida de ejemplo:
Filesystem Size Used Avail Use% Mounted on
tmpfs 391M 1,5M 390M 1% /run
/dev/sda1 40G 18G 20G 48% /
/dev/sdb1 100G 92G 4,2G 96% /var/www
tmpfs 2,0G 0 2,0G 0% /dev/shm
El flag -h (human-readable) muestra los tamaños en MB, GB, etc. en lugar de bloques. En el ejemplo anterior, /var/www está al 96% de capacidad: una señal de alarma que habría que atender cuanto antes.
Otros flags útiles de df
df -h
Muestra tamaños legibles (KB, MB, GB)
df -H
Igual que -h pero usa potencias de 1000 en lugar de 1024
df -T
Muestra el tipo de sistema de archivos (ext4, xfs, tmpfs…)
df -i
Muestra el uso de inodes (muy útil cuando el disco parece vacío pero da error «no space left»)
df -h /var/www
Muestra solo el filesystem donde está montado ese directorio
df --total
Añade una fila final con los totales sumados
Truco importante: si tu servidor dice «No space left on device» pero df -h muestra espacio libre, comprueba los inodes con df -i. Tener todos los inodes usados impide crear nuevos archivos aunque haya espacio físico disponible.
2. Analizar qué ocupa más espacio con du
Mientras df te da el estado general del sistema de archivos, el comando du (disk usage) te ayuda a localizar qué directorios o archivos están consumiendo el espacio.
# Ver tamaño de un directorio concreto
du -sh /var/www# Listar los 10 directorios más grandes bajo /var
du -h /var --max-depth=2 | sort -rh | head -10# Ver los archivos más grandes del sistema (requiere root)
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20
Ejemplo: directorios más pesados
4,2G /var/www/html/tienda/wp-content/uploads
1,8G /var/www/html/tienda/wp-content/cache
890M /var/log/apache2
450M /var/lib/mysql
320M /var/backups
En este ejemplo es inmediatamente visible que la carpeta de uploads de WordPress y la caché están acaparando la mayor parte del espacio. La solución sería limpiar la caché y mover los uploads a almacenamiento externo.
3. Ver las particiones y discos con lsblk y fdisk
Para ver la estructura física de los discos —cuántos discos hay, qué particiones tienen, cuáles están montadas y cuáles no—, los mejores comandos son lsblk y fdisk.
lsblk — listado visual de bloques
lsblk# Con información de tamaño, tipo de sistema de archivos y punto de montaje
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,LABEL
Salida de ejemplo:
NAME SIZE TYPE FSTYPE MOUNTPOINT LABEL
sda 40G disk
├─sda1 39G part ext4 / system
└─sda2 1G part swap [SWAP]
sdb 100G disk
└─sdb1 100G part ext4 /var/www data
fdisk — tabla de particiones completa
fdisk -l
El comando fdisk -l muestra toda la información de la tabla de particiones: tipo de tabla (GPT o MBR), tamaño total del disco, sectores, y el detalle de cada partición con su tipo, inicio y fin.
Nota: en los VPS de BlumHost, los discos suelen aparecer como /dev/vda en lugar de /dev/sda. Es completamente normal; es la nomenclatura de los discos paravirtualizados en KVM.
4. Comprobar la salud del disco con smartctl
El protocolo S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) es el sistema de autodiagnóstico integrado en los discos duros (HDD) y unidades de estado sólido (SSD). A través de él, el disco te comunica si tiene sectores defectuosos, errores de lectura, temperatura elevada u otros síntomas de fallo inminente.
Instalar smartmontools
# Debian / Ubuntu
apt install -y smartmontools# CentOS / RHEL / AlmaLinux
dnf install -y smartmontools
Comprobar el estado general
# Resumen de salud (respuesta: PASSED o FAILED)
smartctl -H /dev/sda# Informe SMART completo con todos los atributos
smartctl -a /dev/sda# Ejecutar un test corto de autodiagnóstico
smartctl -t short /dev/sda# Ver los resultados del test
smartctl -l selftest /dev/sda
Salida: disco en buen estado
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSEDSMART Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 006 Pre-fail 0
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail 0
190 Airflow_Temperature_Cel 0x0022 063 052 045 Old_age 37 (Min/Max 22/48)
197 Current_Pending_Sector 0x0012 100 100 000 Old_age 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age 0
Los atributos más importantes que debes vigilar son:
- Reallocated_Sector_Ct (ID 5): sectores reasignados por fallos. Si es mayor que 0, el disco tiene sectores defectuosos.
- Current_Pending_Sector (ID 197): sectores pendientes de reasignación. Valor mayor a 0 indica sectores inestables.
- Offline_Uncorrectable (ID 198): errores no corregibles durante operaciones offline. Cualquier valor > 0 es señal de fallo inminente.
- Spin_Retry_Count (ID 10): en HDDs, reintentos de arranque. Indica problemas mecánicos.
- Wear_Leveling_Count (ID 177): en SSDs, vida útil restante de las celdas NAND.
Importante: en entornos VPS y cloud, smartctl puede no tener acceso directo al hardware físico subyacente, ya que el sistema operativo trabaja sobre discos virtualizados. En ese caso, es el proveedor de hosting quien monitoriza el estado del hardware físico. En BlumHost, la infraestructura se monitoriza de forma continua con alertas automáticas.
5. Monitorizar el rendimiento de I/O con iostat y iotop
Saber cuánto espacio tienes es una cosa; saber si el disco está siendo un cuello de botella en el rendimiento es otra. Los comandos iostat e iotop te permiten ver en tiempo real la actividad de lectura/escritura.
# Instalar sysstat (incluye iostat)
apt install -y sysstat iotop# Estadísticas de I/O actualizadas cada 2 segundos
iostat -xh 2# Ver qué procesos están generando más I/O (requiere root)
iotop -o# Ver I/O por proceso desde /proc
pidstat -d 2
Ejemplo: disco bajo carga alta
Device r/s w/s rMB/s wMB/s r_await w_await %util
sda 12,00 8,00 0,45 0,30 1,20 0,80 5,20
sdb 0,50 285,00 0,02 22,40 25,60 180,20 98,40
En el ejemplo, sdb está al 98,4% de utilización con una latencia de escritura de 180 ms. Eso indica saturación del disco: el sistema está esperando constantemente al almacenamiento. Esta situación podría estar causando lentitud en la web o en la base de datos.
6. Ver sistemas de archivos montados con mount y /etc/fstab
El archivo /etc/fstab define qué sistemas de archivos se montan automáticamente al arrancar el servidor. Conocer su contenido es fundamental antes de hacer cambios en la configuración de almacenamiento.
# Ver todos los sistemas de archivos montados actualmente
mount | grep -E '^/dev'# Ver el contenido del fstab (montajes automáticos al boot)
cat /etc/fstab# Ver los puntos de montaje de forma estructurada (Linux 5.x+)
findmnt -D
Ejemplo: findmnt -D
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
devtmpfs devtmpfs 4M 0 4M 0% /dev
tmpfs tmpfs 2,0G 0 2,0G 0% /dev/shm
/dev/sda1 ext4 39G 17G 20G 46% /
/dev/sdb1 ext4 100G 45G 51G 47% /var/www
7. Resumen de comandos esenciales
A modo de referencia rápida, aquí tienes todos los comandos mencionados en esta guía organizados por categoría:
df -h
Espacio libre y usado en cada filesystem
df -i
Uso de inodes (detecta “disco lleno” sin espacio consumido)
du -sh /ruta
Tamaño total de un directorio
du -h --max-depth=2 / | sort -rh | head -20
Top 20 directorios más pesados
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
Árbol visual de discos y particiones
fdisk -l
Tabla de particiones completa (requiere root)
smartctl -H /dev/sda
Estado de salud SMART del disco
smartctl -a /dev/sda
Todos los atributos SMART
iostat -xh 2
Rendimiento de I/O en tiempo real
iotop -o
Procesos con más actividad de disco
findmnt -D
Filesystems montados con uso de espacio
cat /etc/fstab
Configuración de montajes automáticos
¿Buscas un VPS Linux con discos NVMe de alta velocidad?
En BlumHost ofrecemos VPS con almacenamiento NVMe, panel de control incluido, backups diarios en segunda ubicación y soporte técnico en español.
También disponible: hosting compartido desde 2€/mes
8. Automatizar alertas de disco lleno
Revisar el estado del disco manualmente está bien para diagnósticos puntuales, pero en un servidor en producción necesitas que el sistema te avise automáticamente cuando el espacio esté por agotarse. El siguiente script te envía un email si algún filesystem supera el 80% de uso:
#!/bin/bash
# Script de alerta de disco lleno
# Añadir al crontab: 0 * * * * /root/disk-alert.shUMBRAL=80
EMAIL="admin@tudominio.com"
HOSTNAME=$(hostname)df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output; do
uso=$(echo $output | awk '{ print $1}' | cut -d'%' -f1)
particion=$(echo $output | awk '{ print $2 }')
if [ $uso -ge $UMBRAL ]; then
echo "ALERTA: $particion en $HOSTNAME está al ${uso}% de capacidad" | \
mail -s "[DISCO LLENO] $HOSTNAME: $particion al ${uso}%" $EMAIL
fi
done
Para instalarlo, guarda el script en /root/disk-alert.sh, dale permisos de ejecución con chmod +x /root/disk-alert.sh y añádelo al crontab de root con crontab -e.
Consejo: en los planes de hosting compartido de BlumHost, las copias de seguridad diarias se almacenan en una segunda ubicación física independiente. Aunque el disco principal se llene o falle, tus datos están protegidos. Puedes ver todos los planes aquí.
Conclusión
Monitorizar el estado de los discos en Linux no es complicado, pero sí es imprescindible. Con los comandos vistos en esta guía puedes tener en pocos segundos una visión completa de tu almacenamiento: cuánto espacio queda, qué está ocupando más, cómo está el rendimiento de I/O y si el hardware muestra síntomas de fallo.
El resumen práctico que te llevas de este artículo:
- Usa
df -hpara el estado general del espacio. - Usa
du -shydu --max-depthpara localizar qué está comiendo el espacio. - Usa
lsblkyfdisk -lpara ver la estructura de discos y particiones. - Usa
smartctl -apara comprobar la salud del hardware. - Usa
iostateiotopsi sospechas que el disco es un cuello de botella. - Automatiza alertas con un cron script para no llevarte sorpresas en producción.
Si tu servidor está en BlumHost, ten en cuenta que la infraestructura NVMe que subyace bajo tu VPS se monitoriza de forma continua por nuestro equipo. Para proyectos donde el rendimiento del almacenamiento es crítico, también puedes consultar el comparativo de planes y precios o revisar qué tipo de hosting necesitas según el tamaño de tu proyecto.
Puedo darte también una versión aún más limpia, pensada específicamente para pegar en el editor visual de WordPress sin que rompa los bloques de código.
