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.