Guía para solucionar el problema "la partición root (/) está llena"
Actualizado el 17 de octubre, 2016. Por BlueHosting.
En Linux, la partición root —o partición raíz— es la partición donde se instala la base del sistema operativo. También se conoce como slash, barra o /
. Cualquier otro archivo dentro del sistema debe estar ubicado en un subdirectorio de esta ubicación, y cualquier archivo de usuario debería estar ubicado en un subdirectorio de /home
. Cuando la partición root está cerca de alcanzar su capacidad máxima pueden ocurrir varios problemas en su servidor que no son fáciles de identificar. En este tutorial le explicamos cómo identificar y solucionar este problema.
Síntomas
Algunos de los siguientes síntomas podrían estar relacionados con este problema:
- El sistema está inestable;
- No se puede reiniciar el servidor Apache;
- El servidor de correo electrónico no puede descargar correos;
- Es imposible instalar actualizaciones o software nuevo.
Identificación del problema
Ingrese a su servidor a través de SSH y compruebe su uso de disco con el siguiente comando:
df -h
Un resultado normal lucirá como lo siguiente:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 15G 894M 13G 7% /
tmpfs 250M 0 250M 0% /dev/shm
O si está utilizando Webmin visite:
- Con SSL: https://nsXXXXXXX.ip-XXX-XXX-XXX.net:10000/fdisk/
- Sin SSL: http://nsXXXXXXX.ip-XXX-XXX-XXX.net:10000/fdisk/
Nota: recuerde sustituir el valor de nsXXXXXXX.ip-XXX-XXX-XXX.net
con el hostname real de su servidor.
Verifique el porcentaje de uso de su partición root, si el mismo está en el orden del 80%, entonces su partición se está quedando sin espacio. Si el espacio está por encima del 90% el problema es crítico y debe solucionarlo lo más pronto posible.
Causas
Hay muchas causas para este problema, entre las más comunes:
— está haciendo un respaldo de sus sitios en otro directorio distinto al subdirectorio /home
;
— hay archivos grandes extraídos en el directorio /
;
— hay software masivo (como servidores para juegos en línea) instalado en un directorio perteneciente a la partición del sistema como /usr
;
— está experimentando el bug de mod_gzip
;
— hay un desbordamiento en la cola de correos electrónicos;
— hay acumulación de archivos log antiguos.
Soluciones
A continuación exploramos algunas soluciones que le pueden ayudar a resolver el problema:
Eliminar archivos para disminuir el porcentaje de almacenamiento
Para los primeros dos casos, solo es necesario mover los archivos y directorios en el subdirectorio /home
.
Primero, debemos hallar los archivos muy pesados que necesiten ser movidos a otra ubicación. Para esto puede utilizar el comando du
.
A continuación algunos ejemplos del uso de du
:
-
Digamos que queremos ver una lista de los archivos en el directorio root:
ls a.log b.log c.log d.log
-
Si usamos únicamente el comando
du
obtendremos el espacio total que ocupan estos archivos en el directorio (sin ningún formato legible):du 3411980 .
-
Al agregar el parámetro
-chs
obtenemos un formato un poco más legible:du -chs 3.3G . 3.3G total
-
Si además agregamos el comodín
*
se mostrará el espacio total que ocupa cada archivo en un formato legible:du -chs * 2.0M a.log 30M b.log 301M c.log 3.0G d.log 3.3G total
-
Otra opción para hallar el archivo más grande en un directorio es ejecutar el siguiente comando:
ls -lh --sort=size | head -n 5
El resultado se asemejará a lo siguiente:
total 239.9M -rwxr-xr-x 1 root root 85.2M Sep 22 2015 archivo1 -rwxr-xr-x 1 root root 82.7M Jul 23 2016 archivo2 -rwxr-xr-x 1 root root 37M Jul 23 2016 archivo3 -rwxr-xr-x 1 root root 35M Nov 10 2016 archivo4
Del comando anterior podemos notar que hay 239.9 MB en el directorio actual (no se toman en cuenta los subdirectorios). El archivo más grande dentro de este directorio es el archivo1
. Pesa 85,2 MB.
Si este no es un archivo importante —por ejemplo: un log muy antiguo— puede eliminarlo utilizando:
rm archivo1
Nota: utilice este comando con cuidado, una vez eliminado el archivo no hay forma de recuperarlo. Tenga especial cuidado si se trata de un archivo del sistema ya que podría dañar completamente su instalación de Linux.
También puede revisar el directorio /root
en busca de archivos grandes con la extensión .rpm
o .tar.gz
(archivos de programas instalados). No es necesario ni obligatorio conservar estos archivos, por lo tanto, puede eliminarlos o moverlos a un directorio en /home
para almacenarlos. Llevemos a cabo la segunda opción (desde el directorio /root
):
mkdir /home/archivos
mv *.tar.gz *.rpm /home/archivos
Descargar el peso de software masivo
Hay software que almacenan archivos muy pesados. Por ejemplo, el servidor HLDS (Half-Life Dedicated Server) se instala en /usr/local/game/hlds
. Este directorio está en la partición del sistema, por lo tanto debe moverlo al directorio /home
y crear un enlace simbólico para que la ubicación siga siendo válida.
Nota: si usted tiene un servidor HLDS, debe detener su funcionamiento antes de ejecutar los siguientes pasos.
Ejecute lo siguiente:
mv /usr/local/game/hlds /home/
ln -s /home/hlds /usr/local/game/hlds
Bug de mod_gzip
Es posible que el módulo mod_gzip
no esté borrando los archivos temporales ubicados en /tmp
y que estos estén alcanzando un tamaño importante (en el orden de los GB). Para liberar este directorio:
-
Enumere los archivos en dicho directorio:
ls -l /tmp/*.wrk -rwx------ 1 nobody nobody 53695415 sep 30 00:10 _11831_132_33.wrk -rwx------ 1 nobody nobody 0 sep 3 00:10 _12954_120_21.wrk -rwx------ 1 nobody nobody 0 sep 7 00:10 _14733_110_11.wrk -rwx------ 1 nobody nobody 0 sep 21 00:10 _16191_106_7.wrk -rwx------ 1 nobody nobody 0 aoû 19 00:10 _16585_123_24.wrk -rwx------ 1 nobody nobody 0 aoû 25 00:10 _16693_152_53.wrk -rwx------ 1 nobody nobody 0 oct 5 00:10 _17282_110_11.wrk -rwx------ 1 nobody nobody 0 sep 14 00:10 _17792_106_7.wrk -rwx------ 1 nobody nobody 0 oct 7 00:10 _18056_108_9.wrk
-
Para borrarlos utilice:
rm -rf /tmp/*.wrk
-
Este es un bug conocido, pero su origen no lo es. Por el momento, la única solución para evitarlo es desactivar el
mod_gzip
dentro del archivo de configuración de apache (httpd.conf
). Busque la siguiente línea:mod_gzip yes
Y remplace el valor yes
, por no
. Luego reinicie el servidor Apache para que los cambios surtan efecto:
/etc/init.d/httpd restart
Este bug solo ocurre con algunos sitios (debido probablemente a un script PHP o CGI).
Recursos adicionales
Por favor consulte los siguientes recursos en busca de información que complemente nuestra guía. Recuerde que no podemos certificar la actualidad o precisión de contenidos externos.
- Para más información del comando
du
, visite el siguiente manual de Linux.