El otro día en mi servidor de producción, donde realmente tengo este blog funcionando, me llegaron unas notificaciones al correo informándome de que la partición /dev/sda1 se estaba acercando al 80% de espacio ocupado.

Esto lo supe gracias a un programa de monitorización llamado Munit. Seguramente de este programa hablaremos algún día y seguramente os traeré diferentes configuraciones interesantes. La notificación decía lo siguiente:

Resource limit matched Service root
Date: Sat, 10 Feb 2018 09:37:58
Action: alert
Host: FreyaServer
Description: space usage 80.1% matches resource limit [space usage>80.0%]
Monit FreyaServer

Tras la notificación pensé en que sería interesante mirar de liberar algo de espacio y mirar que directorios y ficheros están ocupando más. A veces, sin darnos cuenta, algunos ficheros de log pueden llegar ocupar gigas, en ocasiones debido a una mala configuración.

De este modo, aprovechamos para hacer algo de espacio y mirar si este aumento de espacio es algo normal o debido a alguna configuración extraña. Como en cualquier proceso en el servidor, una de las cosas que vamos hacer primero es crear un snapshot del servidor para evitar problemas luego.

Lo primero de todo, es ejecutar un df -h para ver como está actualmente el servidor:

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 25G 19G 4.9G 80% /

Como que mi servidor es únicamente servidor web, hay varios directorios que tendremos que mirar, el DocumentRoot configurado, que en mi caso es /var/www/html/vhosts. También /var/log, que es el directorio donde se guardan todos los registros del servidor.

Lo primero que miramos es que directorios desde la raíz ocupan más espacio en el servidor:

du -sh ./* | grep G
14G ./home
1.1G ./usr
3.2G ./var

Teniendo en cuenta que el disco duro es de 25GB y que el sistema operativo -Debian 8- puede ocupar 5GB aproximadamente, queda claro de donde podemos liberar espacio ¿Verdad? 😛

Aún así, como yo que se hay en el servidor, primero vamos a mirar /var y mirar si hay muchos registros guardados.

Si ejecutamos el mismo comando anterior en /var nos daremos cuenta que de esos 3,2G, 2,1GB se la lleva la carpeta /var/www y luego:

235M ./cache
833M ./lib
2.1G ./www

Dicho esto, una de las cosas que podemos hacer es vaciar la cache de APT, ya que hay un espacio ocupando:

du -sh /var/cache/apt/archives
246M /var/cache/apt/archives

Para vaciar la cache de APT:

apt-get clean
apt-get autoclean

El tamaño de /var/lib es normal, esos 833M son debidos a que en /var/lib/mysql tenemos las bases de datos de las webs que podamos tener. Otro directorio que vemos que ocupa mucho es /var/www/ aquí es donde tengo las webs, así que ni vamos a mirar.

¿Y que tengo en /home para que ocupe 14G? Pues tengo la carpeta de datos del NextCloud. Y mirando, vemos que hay una carpeta llamada updater-oc9b0ypzbria/backups donde podemos borrar cosas para hacer espacio.

Luego, si miramos los ficheros que tenemos en nuestro usuario de NextCloud, podemos observar lo siguiente:

du -sh ./*
72K ./cache
8.5G ./files
295M ./files_encryption
772K ./files_external
2.2G ./files_trashbin
1.1G ./files_versions

¿files_trashbin? ¡Guarda todos los ficheros eliminados! Borramos también estos ficheros, aunque mejor hacerlo desde la web, por si guarda registros en la base de datos.

Una vez los hemos borrado, comprobamos:

du -sh ./*
72K ./cache
8.5G ./files
295M ./files_encryption
772K ./files_external
8.0K ./files_trashbin
1.1G ./files_versions

Lo siguiente consiste en mirar si hay ficheros que tenemos subidos en nuestra nube personal tienen sentido que estén allí. Y sinceramente, yo he visto muchos ficheros.

Tras borrar varios ficheros de la nube nos quedamos con lo siguiente:

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 25G 16G 8.0G 67% /

Como curiosidad, podéis ejecutar también este comando:

du -a / | sort -n -r | head -n 10

Eso básicamente nos mostrará cuales son los 10 archivos y carpetas más grandes desde la raíz y los muestra ordenados por tamaño.

Conclusión

Como podemos ver hemos liberado bastante espacio. Hemos observado por ejemplo, que en /var/log no había nada raro ya que la rotación de los logs es correcta. Yo he llegado ver algún que otro log que llegó a ocupar 146G por no tener la rotación activada.

Finalmente, comentar que los servidores están, entre muchas otras cosas, para ofrecer servicios, ya sea de correo o de Web y no tenemos que tener la mala manía de tener el directorio /root como si fuera nuestro escritorio: lleno de ficheros sin sentido.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación