Chatear en RedIrc

miércoles, 11 de mayo de 2016

Como liberar espacio en nuestro disco duro en Ubuntu Linux

Vaciar la palepera

Los que dispongan de poco espacio en el disco duro sabemos lo importante que es la optimización y compresión de información en nuestro ordenador, Linux, como cualquier otro sistema operativo mantiene diversa información, datos de caché y aplicaciones que no usamos comprometiéndonos el espacio del disco, en este artículo os voy a dar unos trucos y pautas para liberar espacio.


1.0 - Gestor de paquetes:



1.1 - Apt Clean y Autoclean:


Cada vez que instalamos una aplicación usando nuestro gestor de paquetes como apt se descarga de Internet y se almacena en un directorio para su posterior instalación, estos paquetes, por defecto, se mantienen en el disco concretamente en la ruta /var/cache/apt/archives/

Para eliminar todos los paquetes podemos ejecutar el siguiente comando:
sudo apt clean
Como alternativa quizás nos interese solo borrar los paquetes con versiones anteriores a las que tenemos instaladas por si necesitamos reinstalar y no bajarlo de nuevo de Internet:
sudo apt autoclean
Esto lo tendríamos que hacer cada cierto tiempo pero podemos hacer que apt lo haga automáticamente cada cierto tiempo, para ello modificar el token AutocleanInterval en el archivo /etc/apt/apt.conf.d/10periodic, por ejemplo:

APT::Periodic::AutocleanInterval "7";

El número indica los días a esperar antes de limpiar los archivos deb de /var/cache/apt/archives/, en este caso lo hace cada 7 días.


1.2 - Usar el parámetro purge en vez de remove:


La eliminación de paquetes elimina parte de los archivos de este dejando por lo general pequeños archivos de configuración (paquetes residuales) de usuario por seguridad que fueron modificados, por ejemplo:
sudo apt remove un_paquete
En cambio, si queremos eliminar estos archivos de configuración (los perfiles de la aplicación almacenados en ~/.* no se eliminan) con la consiguiente liberación de espacio usaremos purge:
sudo apt purge un_paquete


1.3 - Autoremove:


Cuando instalamos un paquete normalmente se instalan sus dependencias que suelen ser librerías necesarias para que el paquete pueda ejecutarse , algo normal en Linux, el tema es cuando ya no queremos el paquete y lo eliminamos, sus dependencias por lo general no se eliminan con él quedándose en el sistema. Para eliminar estos paquetes se usa autoremove:
sudo apt autoremove
Para automatizar esta tarea podemos cambiar el token Remove-Unused-Dependencies a true en el archivo /etc/apt/apt.conf.d/50unattended-upgrades (si no lo tenéis lo creáis), debe quedar así:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

Por seguridad, NO se eliminan los viejos kernels instalados, estos paquetes ocupan bastante en el sistema, si queremos que sean borrados tenemos que modificar el archivo /etc/kernel/postinst.d/apt-auto-removal, que es el que crea el archivo /etc/apt/apt.conf.d/01autoremove-kernels con el token APT::NeverAutoRemove con todos los kernels incluido el instalado pero puede resultar algo complicado por lo que lo "más seguro" sería eliminarlos con seguridad manualmente:
sudo apt purge `dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r) | awk '{print $2}'`
sudo update-grub
Asegurarse que se ha localizado correctamente el kernel al ejecutar update-grub antes de reiniciar:

update-grub

Con esto deberíamos asegurarnos de no eliminar el kernel actual, de todas maneras debemos confirmar (y) para aseguraros lo que eliminamos.


1.4 - Purgar paquetes residuales:


De vez en cuando conviene revisar los paquetes en busca de aquellos con un estado rc que son paquetes que se han eliminado (remover) y se mantiene la configuración (configure):
dpkg -l | grep ^rc
Estos los podemos eliminar sin problema, podemos ejecutarlo manualmente o por crontab el siguiente comando:
dpkg -l | grep '^rc' | awk '{print $2}' | xargs sudo dpkg --purge 2>/dev/null



2.0 - Eliminar paquetes innecesarios y compactar binarios



2.1 - Eliminar información extra en binarios


La mayoría de aplicaciones que instalamos en nuestro Linux contienen archivos binarios, éstos disponen de cierta información como datos de depuración que se puede eliminar ahorrando  espacio en el disco, para ello podemos recurrir al siguiente comando:
strip --strip-all binario
Para agilizar esto lo combinaremos con find para buscar todos los binarios del sistema y lanzar strip de esta manera:
find `echo $PATH | sed -e "s/:/ /g"` -type f -exec file -i '{}' \; | \
    grep charset=binary | \
    awk '{print $1}' | \
    cut -d':' -f1 | \
    xargs sudo strip -s

[warning headline="Uso de strip en caliente"]No debería haber problemas al usar strip en un sistema activo pero es recomendable hacerlo desde un LiveCD para evitar que el sistema se congele ya que lo estamos usando y strip modifica los binarios.[/warning]


2.2 - Eliminar paquetes que no usemos


La mayor cantidad de espacio se nos va instalando aplicaciones, muchas veces se instalan programas que ya no necesitamos como los archivos dev que contiene el código fuente del programa, son utilizados para desarrolladores o los que necesitan compilar algún programa, si no es tu caso puedes eliminarlos:
dpkg -l | egrep "\-dev" | grep development | awk '{print $2}' | xargs sudo apt purge

Otros paquetes se usan para depurar que habitualmente son los que terminan en dbg o dbgsym, estos contiene los símbolos de depuración, ocupan mucho espacio y conviene eliminarlos, sobre todo si no vamos a depurar ningún programa:
dpkg -l | egrep "\-dbg" | grep debugging | awk '{print $2}' | xargs sudo apt purge

Por último podemos hacer una búsqueda de aquellos paquetes que no usemos y considerar eliminarlos, sobre todo los que ocupen mucho:
sudo apt install wajig
wajig large
Para eliminar el que no usemos o creamos conveniente:
sudo apt purge el_paquete


3.0 - Sistema de ficheros y documentos



3.1 - Cambiar el porcentaje de bloques reservados:


De forma predeterminada, Linux tiene un poco de espacio reservado para el superusuario (root), esto significa que ningún usuario normal puede llenar su sistema de archivos hasta el 100%, y por lo que siempre va a tener suficiente espacio libre para continuar la función normal. Por lo general, cada sistema de ficheros tiene el 5% de espacio reservado, esto lo podemos observar con el siguiente comando:

sudo tune2fs -l /dev/sda1 | grep Reserved

Reserved block count:     2440857
Reserved GDT blocks:      1012
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

Como vemos nos esta reservando alrededor de 2GB (tengo 43GB en esa partición), para cambiar este porcentaje, por ejemplo en la partición sda1 usaremos el comando siguiente:
sudo tune2fs -m 0 /dev/sda1
Al configurar la reserva a 0 lo estamos deshabilitando, ahora deberíamos de tener un 5% más de espacio.


3.2 - Eliminar la caché y archivos temporales al reiniciemos


Cuando navegamos por Internet o por nuestro disco duro con el explorador de archivos se crean unos archivos en nuestro directorio personal ubicado en ~/.cache, esta contiene, entre otras cosas, miniaturas de imágenes localizadas en ~/.cache/thumbnails donde se almacenan decenas de imágenes en miniatura, estas conviene borrarlas cada cierto tiempo, por defecto en Ubuntu está configurado a 180 días. 

Hay un "truco" para que al reiniciar el sistema se elimine esta caché y es crear un montaje con tmpfs y de paso optimizaremos el sistema un poco, para ello, añadimos lo siguiente a nuestro archivo /etc/fstab:

tmpfs /home/tu_usuario/.cache tmpfs defaults,mode=1777 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0

Lo montamos:
sudo mount -a
Con lo anterior también eliminamos cualquier dato que pueda quedar residente como los archivos temporales de Google Chrome si lo usamos que se localiza en ~/.cache/google-chrome. Si usamos firefox los archivos temporales de Internet se almacenan en .mozilla/firefox/, para eliminarlos:
rm -rf ~/.mozilla/firefox/*
Si lo preferimos pulsamos a las teclas "Ctrl + SHIFT + Supr", Google Chrome:

Borrar datos de navegación

Firefox:

Limpiar todo el historial


3.3 - Eliminar archivos que ocupen demasiado


Si eres de los que descargan muchos datos de Internet puede que no sepas que ciertos archivos te están ocupando demasiado espacio en el disco, o quizás no sepas que archivo te esta consumiendo espacio, para ello tenemos el "Analizador de uso de disco" que nos ayudará:

Analizador de uso de disco

Podemos movernos dando clic con el ratón sobre el diagrama de la derecha y retroceder dando clic al centro del mismo, podemos comprobar la ruta donde nos está marcando en rojo:

Analizador de espacio de disco

Si somos un poco frikis podemos usar la terminal para localizar archivos que ocupen a partir de cierta cantidad de tamaño usando find, por ejemplo, mostrar los archivos que ocupan mas de 100 MiB en nuestra carpeta personal y mostrarlos:
find . -size +100M -print0 | xargs -0 ls -sdh | sort -k1,1n

1,9G ./.config/google-chrome/Default/File System/001/p/00/00000002
3,1G ./.config/google-chrome/Default/File System/001/p/00/00000004
9,9G ./VirtualBox VMs/Windows 7/Windows 7.vdi

Una vez localizados podemos pensar si lo borramos o traspasamos a otro lugar para liberar espacio.


3.4 - Vaciar la papelera de reciclaje


Como no, esto que no se nos olvide, la información que eliminamos desde el entorno gráfico suele ir al directorio ~/.local/share/Trash/files a no ser que al eliminar un archivo pulsemos la tecla "SHIFT Mayús + Supr", podemos borrarlo desde el entorno gráfico o por consola:
rm -rf ~/.local/share/Trash/files/*

En el caso de Ubuntu/Unity damos clic secundario en la papelera situada en la parte inferior del lanzador:

Vaciar la papelera



3.5 - Compactar bases de datos sqlite


Muchas aplicaciones hacen uso de base de datos del tipo sqlite ya que resulta muy versátil, liviano y sin necesidad de tener un servidor de SQL instalado en la máquina, la información se almacena en archivos que suelen tener extensión .sqlite o .db, estas bases de datos se suelen fragmentar, sobre todo cuando la aplicación elimina/añade datos muchas veces como lo hace firefox que conviene compactar o ordenar.

Para compactar todas las bases de datos sqlite instalaremos la aplicación sqlite3 para trabajar con estas y luego compactamos:
sudo apt install sqlite3 --yes
find ~ -type f -exec file '{}' \; | \
    grep SQLite | \
    awk '{print $1}' | \
    cut -d':' -f1 | \
    xargs sqlite3 "VACUUM"

Al compactar las bases de datos se libera espacio ya que se ordenan y de paso estamos optimizando las aplicaciones.


4.0 - Como ultima salida redimensionar


Si después  de hacer lo anterior seguimos con poco espacio en una partición(es) puedes redimensionar el tamaño de otra que si lo tiene y asignarlo a la que no tiene usando gparted desde un LiveCD ya que no podremos manipular las particiones si está montada.

Debemos redimensionar particiones contiguas, si no, no nos dejará, os dejo un video para que veáis y os hagáis una idea de como sería el proceso:








No hay comentarios:

Publicar un comentario