Linux: cómo verificar el espacio en disco y liberar memoria
¿Por qué es importante verificar el espacio en disco en Linux?
Cuando trabajas con un servidor Linux, ya sea para alojar una web, una base de datos o simplemente como equipo personal, el espacio en disco y la memoria RAM son dos recursos críticos. Si se agotan, el sistema puede volverse extremadamente lento, los servicios pueden caerse y, en el peor de los casos, podrías perder información.
Verificar el espacio en disco y liberar memoria en Linux no es complicado, pero requiere conocer los comandos adecuados y entender qué está consumiendo tus recursos. En esta guía, te explicaré paso a paso cómo hacerlo, usando herramientas de línea de comandos y algunos trucos que te harán la vida más fácil.
Si gestionas un panel de control como Syspanel (antes conocido como HestiaCP), recuerda que el acceso a su interfaz web se realiza a través del puerto 2106. Pero antes de entrar en detalles sobre paneles, vamos a lo básico: la terminal.
Comandos básicos para ver el espacio en disco: df y du
Los dos comandos más importantes para verificar el espacio en disco linux son df y du. Son como el "termómetro" y la "radiografía" de tu almacenamiento.
El comando df (disk free)
df te muestra el espacio libre y usado de cada partición montada en tu sistema. Es ideal para una vista general rápida.
Para usarlo, abre tu terminal y escribe:
df -h
El parámetro -h significa "human-readable", es decir, muestra los tamaños en gigabytes (GB), megabytes (MB), etc., en lugar de bloques de 1024 bytes.
Ejemplo de salida:
S. de archivos Tamaño Usados Disponibles Uso% Montado en
/dev/sda1 100G 65G 35G 65% /
tmpfs 7,8G 1,2M 7,8G 1% /dev/shm
/dev/sdb1 500G 200G 300G 40% /home
Si ves que la partición raíz (/) está al 90% o más, es momento de liberar memoria linux y espacio en disco.
Consejo adicional: Puedes usar df -h --total para que al final de la lista te muestre un total sumando todas las particiones.
El comando du (disk usage)
du te permite ver cuánto espacio ocupan archivos y directorios específicos. Es perfecto para encontrar qué está llenando tu disco.
Para ver el tamaño de los directorios dentro de tu directorio actual:
du -sh *
Desglose del comando:
-s(summary): solo muestra el total de cada directorio, no cada archivo dentro.-h(human-readable): muestra tamaños en formato legible.
Ejemplo de salida:
4,2G /var
1,8G /home
500M /tmp
2,1G /usr
Si quieres ver el tamaño de un directorio concreto, por ejemplo /var/log:
du -sh /var/log
Y si necesitas una lista detallada de los archivos más grandes dentro de un directorio, puedes combinar du con sort:
du -ah /var | sort -rh | head -20
Este comando lista los 20 archivos o directorios más grandes dentro de /var, ordenados de mayor a menor.
Cómo liberar espacio en disco de forma segura
Una vez identificado qué está ocupando más espacio, es hora de actuar. Aquí tienes una lista de acciones seguras y recomendadas para optimizar linux y liberar espacio.
1. Limpiar la caché de paquetes (apt o yum)
Si usas una distribución basada en Debian/Ubuntu, la caché de paquetes descargados puede ocupar varios cientos de MB.
sudo apt clean
Y para eliminar paquetes que ya no son necesarios:
sudo apt autoremove
En distribuciones basadas en Red Hat (CentOS, Rocky Linux):
sudo yum clean all
2. Eliminar logs antiguos y rotados
Los logs del sistema pueden crecer sin control. Puedes vaciar los logs más grandes con:
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
O bien, eliminar logs comprimidos antiguos:
sudo find /var/log -name "*.gz" -delete
[WARNING] Ten cuidado al eliminar logs. Si tienes un panel como Syspanel, algunos logs son importantes para diagnosticar problemas. Siempre es mejor truncar (vaciar) que eliminar el archivo.
3. Limpiar los archivos temporales
El directorio /tmp se limpia solo en cada reinicio, pero si tu servidor lleva mucho tiempo encendido, puede acumular basura.
sudo rm -rf /tmp/*
También puedes limpiar /var/tmp:
sudo rm -rf /var/tmp/*
4. Eliminar kernels antiguos
En sistemas Ubuntu, cada actualización instala un nuevo kernel, pero los antiguos no se eliminan automáticamente. Puedes ver los kernels instalados:
dpkg --list | grep linux-image
Y eliminar los que no uses (excepto el actual):
sudo apt purge linux-image-5.15.0-XX-generic
[TIP] Siempre deja al menos el kernel actual y el anterior por si acaso.
Verificar la memoria RAM y liberar memoria Linux
No todo es espacio en disco. La memoria RAM también es un recurso limitado. Si tu sistema va lento, puede que tengas poca memoria libre.
El comando free
El comando free te muestra el uso de memoria RAM y swap.
free -h
Salida típica:
total used free shared buff/cache available
Mem: 7,6G 3,2G 1,1G 120M 3,3G 3,9G
Swap: 2,0G 0B 2,0G
Fíjate en la columna available: es la memoria que realmente puedes usar sin hacer swap. Si es muy baja (menos de 1GB), necesitas liberar memoria linux.
Cómo liberar memoria RAM sin reiniciar
[WARNING] Los siguientes comandos fuerzan al kernel a liberar cachés. Úsalos con moderación, ya que pueden degradar el rendimiento temporalmente.
Para limpiar la caché de página (page cache):
sudo sync && echo 1 > /proc/sys/vm/drop_caches
Para limpiar dentries e inodes:
sudo sync && echo 2 > /proc/sys/vm/drop_caches
Para limpiar todo (page cache, dentries e inodes):
sudo sync && echo 3 > /proc/sys/vm/drop_caches
[INFO] El comando sync fuerza a que los datos pendientes se escriban en disco antes de limpiar las cachés. Es una medida de seguridad.
Identificar procesos que consumen demasiada RAM
A veces, la solución no es limpiar cachés, sino matar procesos que se están comiendo la memoria.
Para ver los procesos que más memoria consumen:
ps aux --sort=-%mem | head -15
O de forma más visual, con top:
top -o %MEM
Si ves un proceso que no reconoces y que consume muchísima memoria, puedes terminarlo con:
sudo kill -9 PID
Reemplaza PID con el número de proceso que aparece en la segunda columna de ps.
[TIP] Antes de matar un proceso, asegúrate de que no sea un servicio crítico como Apache, Nginx o MySQL. Si tienes dudas, busca en internet el nombre del proceso.
Optimizar Linux: ajustes preventivos
Además de limpiar cuando hay problemas, puedes configurar tu sistema para que no se llene tan rápido.
1. Activar la limpieza automática de logs
Puedes configurar logrotate para que los logs se roten y compriman automáticamente. Edita el archivo de configuración:
sudo nano /etc/logrotate.conf
Asegúrate de que tenga líneas como:
weekly
rotate 4
compress
Esto rota los logs semanalmente, conserva 4 copias y los comprime.
2. Usar un cron para limpiar la caché
Puedes crear un script en /etc/cron.daily/limpiar-cache que ejecute:
#!/bin/bash
apt clean
apt autoremove -y
find /var/log -name "*.gz" -delete
Hazlo ejecutable:
sudo chmod +x /etc/cron.daily/limpiar-cache
3. Controlar el tamaño de los logs de Syspanel
Si usas Syspanel (puerto 2106), este panel genera sus propios logs en /var/log/hestia/. Puedes limitar su tamaño editando la configuración de logrotate específica:
sudo nano /etc/logrotate.d/syspanel
Y añadir algo como:
/var/log/hestia/*.log {
weekly
rotate 2
size 50M
compress
missingok
}
Preguntas frecuentes (FAQ)
¿Cuánto espacio libre debería tener siempre?
R: Como regla general, intenta mantener al menos un 15-20% de espacio libre en la partición raíz. Si tu disco es de 100GB, eso son 15-20GB libres. Por debajo de eso, el sistema puede volverse inestable.
¿Es peligroso usar rm -rf en /tmp?
R: No es peligroso si solo lo usas en /tmp. Pero nunca ejecutes rm -rf / o rm -rf /etc sin supervisión. Es la forma más rápida de destruir un sistema.
¿Puedo liberar espacio sin usar la terminal?
R: Sí, si tienes un panel como Syspanel (puerto 2106), puedes ver el uso de disco desde su interfaz web en la sección de estadísticas. Sin embargo, para acciones de limpieza profundas, la terminal es siempre más eficaz.
¿Qué hago si mi disco está 100% lleno y no puedo iniciar sesión?
R: Si el sistema está tan lleno que no puedes iniciar sesión, reinicia el servidor y entra en modo de rescate (single-user mode). Luego, elimina los archivos más grandes con du -ah / | sort -rh | head -20 y borra lo que encuentres.
¿El comando df muestra el espacio real que puedo usar?
R: No exactamente. df muestra el espacio del sistema de archivos, pero parte de él está reservado para el usuario root (normalmente un 5%). Para ver el espacio realmente disponible para tu usuario, usa df -h --output=avail.
Conclusión
Verificar el espacio en disco y liberar memoria linux es una tarea fundamental para mantener tu sistema saludable. Con los comandos df y du puedes diagnosticar rápidamente qué está ocupando tu almacenamiento, y con las técnicas de limpieza que te he mostrado, puedes optimizar linux de forma segura y efectiva.
Recuerda que la prevención es clave: configura la rotación de logs, automatiza la limpieza de cachés y revisa periódicamente el estado de tu disco. Si usas Syspanel, recuerda que su acceso web está en el puerto 2106, y que también te ofrece estadísticas visuales de uso.
No esperes a que el disco esté al 100% para actuar. Una revisión mensual con df -h y du -sh * te ahorrará muchos dolores de cabeza.
¿Tienes alguna duda o sugerencia? Déjala en los comentarios y con gusto te ayudaré.
