¿Cómo libero espacio en disco?

181

Mi servidor en la nube Ubuntu ha dejado solo 900 MB de espacio en disco.

Simplemente vaciaré el directorio / tmp y me preguntaré si hay alguna otra ubicación para limpiar.

usuario3215
fuente
1
Pruebe este también: dpkg -l | grep ^ rc | cortar -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf
Si está usando docker: docs.docker.com/config/pruning
Gerard Carbó
para muchos casos:sudo docker container prune -f && sudo docker image prune -f
smftr

Respuestas:

104
sudo apt-get autoremove

Eso puede limpiar un montón de guff (núcleos antiguos, etc.) que han sido reemplazados. Puede hacer algo similar en Synaptic (cárguelo y seleccione el botón de estado y luego la opción de eliminación automática).

Oli
fuente
¿No afectará a las aplicaciones en ejecución, como si elimina cualquier paquete necesario del que depende alguna aplicación?
user3215
1
No. Autoremove busca paquetes huérfanos, es decir, paquetes que no instaló explícitamente (los marcados como automáticos) y que no tienen dependencias. Si usa en aptitudelugar de apt-get, puede limpiar a medida que avanza, pero es bastante común que las instalaciones más antiguas recopilen una serie de núcleos instalados a medida que salen las actualizaciones de seguridad.
Oli
1
Error tipográfico en mi último comentario. Quise decir que los paquetes huérfanos son aquellos en los que no se depende, no aquellos que "no tienen dependencias". Es muy posible que tengan dependencias y si solo estuvieran allí para ese paquete huérfano, también se eliminarán. Algunas veces (con árboles de dependencia realmente profundos) puede tomar un par de movimientos automáticos para limpiar.
Oli
55
Si bien el comando anterior es ciertamente útil, no , como se indicó, eliminará los núcleos antiguos. Eso debe hacerse manualmente o con herramientas adicionales como Ubuntu Tweak.
codeling
1
@nyarlathotep Se va a eliminar archivos de cabecera del núcleo, lo que a primera vista puede hacer pensar que es la eliminación de los viejos núcleos - los viejos núcleos permanecen, sin embargo (prueba dpkg --get-selections | grep linux-image).
drevicko
211

Para eliminar paquetes descargados (.deb) ya instalados (y ya no son necesarios)

sudo apt-get clean

Para eliminar todos los archivos almacenados en su caché para paquetes que ya no se pueden descargar (por lo tanto, paquetes que ya no están en el repositorio o que tienen una versión más nueva en el repositorio).

sudo apt-get autoclean

Para eliminar paquetes innecesarios (después de desinstalar una aplicación, podría haber paquetes que ya no necesita)

sudo apt-get autoremove

Para eliminar versiones antiguas del kernel

sudo apt-get remove --purge linux-image-X.X.XX-XX-generic

Si no sabe qué versión del kernel eliminar

dpkg --get-selections | grep linux-image

Fuente: Limpiando Ubuntu: comandos y programas (actualización) ( traducido por google )

DrKenobi
fuente
1
Correr cleanliberó bastante espacio. Inmediatamente después, corrí autocleany mi espacio libre se redujo en 45 MB. Correr cleannuevamente liberó este espacio extra.
Drew Noakes
8
He quitado toda la imagen de Linux listada por dpkg --get-selections | grep linux-imagelo que me causó un error en el arranque - el ubuntu desapareció del menú de arranque de grub - esta respuesta solucionó el problema - trate de no eliminar la última imagen
laplasz
¿Qué estamos haciendo exactamente cuando eliminamos las imágenes de Linux?
Menelaos Bakopoulos
44
Ok, esto ya ha sido respondido 100 veces (y en este hilo también), pero me resulta realmente extraño que me voten 160 veces porque: sudo apt-get clean simplemente eliminará los paquetes de toda la copia local de los paquetes que pueda tener descargado al hacer una instalación + actualización. Esto casi vaciará el directorio / var / cache / apt / archives. ... Así que la próxima vez que sudo apt-get updatelo ejecutes volverá a descargar todo (ya está allí). ¡Solo un aviso! .. :)
Nostromov
168
  • muestra los 10 subdirectores más grandes del directorio actual.

    du -sk * | sort -nr | head -10
    
  • use filelight o kDirStat para ver a dónde va visualmente el espacio en disco

  • compruebe si tiene núcleos antiguos para eliminar

    ls -lh /boot
    
  • paquetes de limpieza

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    Vea la lista de todos los paquetes instalados, ordenados por tamaño. Si ve algo grande y no lo usa, desinstálelo

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • limpie los archivos de idioma no utilizados con traducciones (hay toneladas de ellos)

    sudo apt-get install localepurge
    
  • verifique el contenido de / var / tmp /

    du -sh /var/tmp/
    
  • comprobar también

    man deborphan
    
  • Busca archivos grandes:

    find / -type f -size +1024k
    

    o

    find / -size +50000  -exec ls -lahg {} \;
    
  • grandes paquetes instalados

    dpigs
    

esto es parte del paquete: debian-goodies

chorro
fuente
44
Para encontrar archivos de gran tamaño que sugiero ncdu, que proporciona una forma rápida de ver qué directorios están utilizando su espacio de disco
rubo77
1
kDirStatse sustituye porbaobab
rubo77
17

Acabo de liberar casi 2 conciertos al eliminar los núcleos antiguos y los archivos de encabezado:

utilizar

uname -r

para verificar su versión actual, entonces

dpkg -l linux-image-* linux-headers-*

para ver todos los núcleos antiguos y los archivos de encabezado, entonces

sudo apt-get remove linux-image-<XYZ> linux-headers-<XYZ>

el apt-get removecomando admite comodines, por lo que puede hacer, apt-get remove linux-image 3.0.* linux-headers-3.0.*por ejemplo, deshacerse de muchos a la vez.

Asegúrese de no matar eliminar el núcleo actual, por supuesto! Y tal vez conserve una o dos versiones antiguas, por si acaso ... ¡pero no 10 o 20!

hwjp
fuente
¿Eso de los comodines? Antes de usarlo, lo verificaba dos veces porque lo probé y obtuve más de lo que quería. Es posible (tal vez incluso probable) que me haya llenado de alguna manera, pero no sé cómo y, sin embargo, perdí más encabezados de los que quería.
Glaucon
Los comodines son comodines regex en lugar de globos.
Chai T. Rex
13

No te olvides de vaciar la basura.

ingrese la descripción de la imagen aquí


O desde la línea de comando:

rm -r ~/.local/share/Trash/info/ && rm -r ~/.local/share/Trash/files/  
desgua
fuente
11

Realmente te recomiendo el programa BleachBit, que limpia todo en Ubuntu.

Instálelo con el siguiente comando:

sudo apt-get install bleachbit

Gustavo va
fuente
11

Desinstale paquetes grandes que no usa

Algunos paquetes pueden ser bastante grandes. Una forma conveniente de encontrarlos es usarlos dpigs. No está instalado de forma predeterminada, pero se puede encontrar en debian-goodies( proyecto GitHub )

sudo apt-get install debian-goodies

Entonces:

$ dpigs
419576 texlive-latex-extra-doc
204112 nvidia-319
175463 google-chrome-stable
141058 linux-image-extra-3.11.0-15-generic
113173 libreoffice-core
104822 valgrind
102322 qt4-doc
93337 blender
91105 texlive-pstricks-doc
90517 libboost1.53-dev

Hay algunas opciones:

-n, --lines=N
  Display the N largest packages on the system (default 10).
-s, --status=status-file
  Use status-file instead of the default dpkg status file.
-S, --source
  Display the largest source packages of binary packages installed
  on the system.
-H, --human-readable
  Display package sizes in human-readable format (like ls -lh or du -h)
-h, --help
  Display this message.
Drew Noakes
fuente
10

Eliminar todas las versiones antiguas del kernel automáticamente

Atención: si acaba de actualizar el núcleo, reinicie antes de eliminar las versiones anteriores.

Recuerde verificar qué núcleo está utilizando, escriba:

uname -r

Luego como raíz:

sudo apt-get remove --purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')

¡lea ese hilo para estar seguro de no eliminar los núcleos necesarios con este comando!

rubo77
fuente
8

Si usa UFW, verifique la carpeta de registro. En una de mis máquinas, UFW estaba generando 8Gb de registros en un par de días.

También puede vaciar el caché de apt con:

sudo apt-get clean
lovinglinux
fuente
¿Puedo encontrar archivos de registro de UfW?
Aprendiz curioso
8

Intente usar BleachBit ( ubicado en sourceforge ). Es un gran programa. La idea básica es que rápidamente libera espacio en disco y elimina gran parte de la basura que está oculta en el sistema. Hay alrededor de 70 aplicaciones que puede reconocer y limpiar. También existe la posibilidad de usarlo para "borrar" el espacio libre en el disco. Pienso en ello como CCleaner desde Windows solo para Linux.

RunningUtes
fuente
3
Tenga en cuenta que la pregunta específicamente pide herramientas de servidor y este es un programa de escritorio (requiere una pantalla X).
Ryre
¡La mejor herramienta hasta ahora!
Roger
8

Compruebe también si hay grandes cantidades de archivos de registro:

sudo du -h /var/log

O, como rubo77 señala en los elogios, puede usar la herramienta de uso de disco NCurses:

sudo ncdu /var/log
Drew Noakes
fuente
comando útil que enumera el tamaño del archivo y no el "número de archivos de registro"
dogmatic69
o usesudo ncdu /var/log
rubo77
@ rubo77, gracias, ¡es una herramienta muy buena!
Drew Noakes
4

Primero, hay una herramienta para enumerar todas las carpetas y archivos grandes. Simplemente escriba 'Baobab' en el lanzador. Al eliminar carpetas y archivos no necesita más espacio.


Luego, hay un programa para eliminar archivos dobles. El programa se llama fslint. Instálelo ingresando

sudo apt-get install fslint

en una terminal.

o gráficamente

Instale fslint a través del centro de software


También puede borrar la caché del paquete con

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

El cuarto paso es eliminar las entradas antiguas del kernel. Puede hacerlo instalando y abriendo Synaptic. En Synaptic, busque las entradas antiguas de Kernel (cada entrada de Kernel que se muestra en GRUB excepto la más reciente) y elimínela.


Un buen paso es eliminar el caché de la aplicación. Haga esto instalando y ejecutando bleachbit:

sudo apt-get install bleachbit

o gráficamente

Instale bleachbit a través del centro de software

Importante: ¡La memoria caché eliminada no se puede restaurar!


El último paso es desfragmentar el sistema de archivos. Haga lo siguiente para esto:

cd $HOME
git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
cd e2fsprogs
./configure
make

Con estos comandos, descarga y compila e2fsprogs. (Si usted o la comunidad tienen una mejor manera de instalar el programa, edítelo)

También asegúrese de que git-coreesté instalado. Si no, ejecute:

sudo apt-get install git-core 

o usando el Centro de software Instale git-core a través del centro de software

Ahora puede ejecutar el programa con:

cd $HOME/e2fsprogs/misc
./e4defrag /dev/sda1    #defragment /dev/sda1
./e4defrag -v /dev/sda1 # verbose output
./e4defrag -c /dev/sda1 # see overview of fragmentation status

Reemplace / dev / sda1 con el sistema de archivos o carpeta / archivo que desee. Tenga en cuenta que para desfragmentar un dispositivo (como HDD) necesita privilegios de root, pero no para sus propios archivos.


Fuente (alemán): aquí

slashcrack
fuente
Wow, la eliminación de versiones antiguas de linux-header y linux-image liberó aproximadamente un concierto y medio en mi instalación 10.04. fslint es un gran hallazgo también. Gracias.
braddock el
En lugar de baobab, también puede usar la herramienta de línea de comandos ncdu para buscar carpetas y archivos grandes:sudo apt-get install ncdu
rubo77
4

script más limpio

Este script ejecutará los fragmentos más grandes en la consola:

  • Limpiar caché apto
  • Elimine los archivos de configuración que quedan de los paquetes .deb desinstalados (sucede si no usa el --purgeconmutador con apt-get)
  • Elimine todos los núcleos excepto el que está utilizando.
  • Vaciar las papeleras de cada usuario (incluida la raíz)

cree un archivo con este contenido y dele derechos de ejecución:

#!/bin/bash
# Adapted from 71529-ubucleaner.sh - http://www.opendesktop.org/CONTENT/content-files/71529-ubucleaner.sh

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"; RED="\033[0;31m"; ENDCOLOR="\033[0m"

if [ $USER != root ]; then
  echo -e $RED"Error: must be root! Exiting..."$ENDCOLOR
  exit 0
fi

echo -e $YELLOW"Cleaning apt ..."$ENDCOLOR
aptitude clean
apt-get autoremove
apt-get autoclean

echo -e $YELLOW"Those packages were uninstalled without --purge:"$ENDCOLOR
echo $OLDCONF
#apt-get purge "$OLDCONF"  # fixes the error in the original script
for PKGNAME in $OLDCONF ; do  # a better way to handle errors
  echo -e $YELLOW"Purge package $PKGNAME"
  apt-cache show "$PKGNAME"|grep Description: -A3
  apt-get -y purge "$PKGNAME"
done

echo -e $YELLOW"Removing old kernels..."$ENDCOLOR
echo current kernel you are using:
uname -a
aptitude purge $OLDKERNELS

echo -e $YELLOW"Emptying every trashes..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null

echo -e $YELLOW"Script Finished!"$ENDCOLOR

Adaptado de 71529-ubucleaner.sh


encontrar carpetas y paquetes grandes

Algunas herramientas que lo ayudarán a encontrar carpetas y paquetes grandes:

sudo apt-get install ncdu debian-goodies deborphan

sudo ncdu /    # lists all folders by size on the console (like the gui `baobab`)
dpigs -H       # shows large packages that you don't use
man deborphan  # finds packages that have no packages depending on them
deborphan --guess-all --libdevel | xargs apt-get -s purge

localepurge

Use localepurge para desinstalar idiomas no utilizados en su sistema:

sudo apt-get install localepurge

eliminar viejas imágenes snapd

LANG=c snap list --all | awk '/disabled/{print $1, $3}' | \
    while read snapname revision; do \
        snap remove "$snapname" --revision="$revision"; \
    done

lejía

Una gran herramienta gráfica de GUI para satisfacer todas las necesidades:

sudo apt-get install bleachbit

eliminar páginas de manual y documentación

Además, puede eliminar las páginas de manual y la documentación como se describe en Ubuntu Wiki :

Cree un archivo /etc/dpkg/dpkg.cfg.d/01_nodoc que especifique los filtros deseados. Ejemplo:

path-exclude /usr/share/doc/*
# if we need to keep copyright files for legal reasons:
# path-include /usr/share/doc/*/copyright
path-exclude /usr/share/man/*
path-exclude /usr/share/groff/*
path-exclude /usr/share/info/*
# lintian stuff is small, but really unnecessary
path-exclude /usr/share/lintian/*
path-exclude /usr/share/linda/*

Elimine el mismo conjunto de archivos y directorios en postinst del proyecto-config. Ejemplo:

echo "Removing documentation..."
# if we need to keep copyright files for legal reasons:
# find /usr/share/doc -depth -type f ! -name copyright | xargs rm || true
# else:
find /usr/share/doc -depth -type f | xargs rm || true
rm -rf /usr/share/man/* /usr/share/groff/* /usr/share/info/* /usr/share/lintian/* /usr/share/linda/* /var/cache/man/*
rubo77
fuente
Dependiendo de su caso, puede encontrar algunas opciones más en este script: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
rubo77
Recibí una advertencia al ejecutar este script que estaba a punto de eliminar un núcleo con el mismo número de versión que estaba ejecutando.
Christophe De Troyer
verifique el núcleo actual con el que está utilizando uname -a. En caso de que haya realizado un apt-get ugrade antes y haya obtenido un nuevo kernel, esta podría ser la causa de que el kurnel actual que está utilizando no sea el más nuevo instalado. Realice una repoblación antes de comenzar este script
rubo77
La secuencia de comandos minimiza.sh se ha movido: github.com/boxcutter/debian/blob/master/script/minimize.sh
rubo77
3

El directorio '/ tmp' nunca debe limpiarse manualmente a menos que sea absolutamente necesario (es decir: una aplicación cerrada no se limpió después de sí misma).

Puede buscar dónde se puede llenar el espacio con el comando 'du'; por lo general, los lugares de interés están dentro de '/ var'. Para nombrar dos sospechosos habituales '/ var / log' y '/ var / cache'. Aunque he tenido algunos usuarios que instalan una utilidad de copia de seguridad y nunca se dan cuenta de que crea GB de copias de seguridad incrementales en '/ var / backup' que se acumulan durante una semana o un mes para llenar todo el espacio en disco.

ibuclaw
fuente
¡Gracias!. Como dijiste, tengo un espacio ocupado en MB en / var / cache y me pregunto cómo eliminar archivos innecesarios.
user3215
2

Use ubuntu-tweak para limpiar.

limpia todos los * .deb que se descargan en las aplicaciones de instalación.

mwm
fuente
no funciona con KDE
rubo77
1

Si ya ha eliminado una gran cantidad de basura pero el espacio en disco no parece estar limpio, simplemente reinicie ubuntu. O si no desea reiniciar, simplemente ejecute el comando como en una pregunta similar .

sudo service rsyslog restart
Maxim Yefremov
fuente
0

Cuando necesito hacer más espacio libre en los servidores, uso este comando. Encuentra todos los archivos más grandes que 50 MB y "du -h" hace una mejor lista de archivos y "sort -n" después de la lista de tuberías, ordenada numéricamente por tamaño de archivo.

find / -size +50M -type f -exec du -h {} \; | sort -n
zorbon.cz
fuente
1
Usted sería mejor de polvo utilizando ncdu /en su lugar
rubo77
1
Dado du -h, uso sort -htambién.
muru
-3
uname -r 

(para ver el tuyo)

apt-get remove linux-image 3.0.* 

(las tuyas versiones anteriores). Me dio 600mb de espacio libre.

adi kwok
fuente
3
Voto negativo porque con comandos como este, si no tiene cuidado, puede eliminar el último núcleo (o incluso todos los núcleos).
ndemou