Ubuntu: Liberar espacio en VPS pequeños

Esta guía es para liberar espacio en VPS pequeños pero se podría aplicar para todo tipo de servidores.

En mi caso tengo un VPS XS de solo 10 GB de almacenamiento y el espacio de almacenamiento se llena muy rapido, sobre todo por logs e imágenes antiguas de Docker.

Los distintos comandos se podrían utilizar cuando sea necesario o ponerlos en algún script con Cronjobs para que se ejecuten regularmente.

Ver espacio disponible

Cada quien usa un comando distinto pero yo suelo usar los siguiente:

df -h
df -Th (con tipos de particiones)
lsblk
root@vicolinker:~ df -h
Filesystem             Size  Used Avail Use% Mounted on
udev                   195M     0  195M   0% /dev
tmpfs                   45M  5.6M   40M  13% /run
/dev/mapper/vg00-lv01  7.4G  6.6G  481M  94% /
tmpfs                  225M     0  225M   0% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
tmpfs                  225M     0  225M   0% /sys/fs/cgroup
/dev/vda1              456M  213M  209M  51% /boot
overlay                7.4G  6.6G  481M  94% /var/lib/docker/overlay2/ee251257f2064be534c1a9d001d9b31ebfdf249b5e8b8a82c4dc909354d8654e/merged
overlay                7.4G  6.6G  481M  94% /var/lib/docker/overlay2/f60013e696fc02d8971110fcf99ef40291d72c73a9e383557c4b6a8aa6921ac7/merged
overlay                7.4G  6.6G  481M  94% /var/lib/docker/overlay2/07b9a758795b052af6fb4c08deb42791c70440a8ecb0db6e6fa0793eff9b53b5/merged
overlay                7.4G  6.6G  481M  94% /var/lib/docker/overlay2/340c8aa301620f9f042d7a01783fe22b5b71eded2f0c4aeb711f9c34baf26083/merged
tmpfs                   45M     0   45M   0% /run/user/0

Eliminar Logs rotativos

Hay muchos logs del sistema y de aplicaciones que se van acumulando con el tiempo y llegan a ocupar incluso una gran parte del almacenamiento.

# Todos los logs files de la carpeta
find /var/log -type f -delete

# Solo los .gz o .numero
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"

También podrías utilizar logrotate para configurar la limpieza.

Docker: Eliminar Images y volumes en desuso

Esto utilizarlo con cuidado porque podría eliminar los volumes de los contenedores que están parados. Sino podrías utilizarlo mas enfocado.

# Limpiar todo (cuidado)
docker system prune --volumes -a

# Limpiar solo images:
docker image prune -a

# Limpiar solo Containers en desuso:
docker container prune

# Limpiar solo Volumes antiguos:
docker volume prune

Mas info: https://docs.docker.com/engine/manage-resources/pruning/

Desinstalar paquetes antiguos

Muchas veces los VPS vienen con paquetes y librerías que no usamos, para desinstalarlas podrías usarlos estos comandos para Listar todo lo que esta instalado y luego desinstalar esos paquetes. Este es un ejemplo para Ubuntu:

# Listar paquetes:
apt list --installed

# Desintalar paquetes
apt remove [paquete]

Ejemplo: apt remove python

En algunos casos también podemos eliminar los archivos de configuración que dejo ese paquete, para ellos usamos este comando:

apt purge [paquete]

ejemplo: apt purge python

Eliminar Kernel antiguos

Esto eliminara Kernels antiguos de Linux que se quedaron después de actualizar, también eliminara dependencias antiguas y paquetes obsoletos que ya no usamos.

apt autoremove

Algunas cosas podemos hacer par evitar todo eso es:

  • usar logrotate para la limpieza automática de los logs
  • Docker: se puede configurar para que los logs no ocupen tanto espacio y vayan rotando, también en docker compose.