Comment libérer de l'espace disque?

181

Mon serveur cloud Ubuntu n'a laissé que 900 Mo d'espace disque.

Je vais juste vider le répertoire / tmp et me demander s'il y a un autre emplacement à nettoyer.

utilisateur3215
la source
1
Essayez aussi celui-ci: dpkg -l | grep ^ rc | cut -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf
Si vous utilisez docker: docs.docker.com/config/pruning
Gerard Carbó
pour de nombreux cas:sudo docker container prune -f && sudo docker image prune -f
smftr

Réponses:

104
sudo apt-get autoremove

Cela peut nettoyer beaucoup de guff (vieux noyaux, etc.) qui ont été remplacés. Vous pouvez faire la même chose dans Synaptic (chargez-le et sélectionnez le bouton d’état, puis l’option enlevable automatiquement).

Oli
la source
Cela n'affectera-t-il pas les applications en cours, comme s'il supprime tout package nécessaire dont dépend toute application?.
user3215
1
Autoremove recherche les packages orphelins, c'est-à-dire les packages que vous n'avez pas explicitement installés vous-même (ceux marqués comme étant auto) et qui ne comportent pas de dépendances. Si vous utilisez aptitudeau lieu de apt-get, il peut nettoyer en cours de route, mais il est assez courant que les installations plus anciennes collectent un paquet de noyaux installés lorsque les mises à jour de sécurité sont publiées.
Oli
1
Typo dans mon dernier commentaire. Je voulais dire que les paquets orphelins ne sont pas dépendants, pas ceux qui "n'ont pas de dépendances". Ils peuvent bien avoir des dépendances et s’ils n’étaient là que pour ce paquet orphelin, ils seront également supprimés. Certaines fois (avec des arbres de dépendance très profonds), le nettoyage peut nécessiter quelques enlèvements automatiques.
Oli
5
Bien que la commande ci-dessus soit certainement utile, elle ne supprimera pas , comme indiqué, les anciens noyaux. Cela doit être fait manuellement ou avec des outils supplémentaires comme Ubuntu Tweak.
codeling
1
@nyarlathotep Il va supprimer les fichiers d' en- tête du noyau, qui à première vue peut faire penser qu'il est enlever les vieux noyaux - les noyaux anciens restent cependant (essayer dpkg --get-selections | grep linux-image).
Drevicko
211

Pour supprimer les packages téléchargés (.deb) déjà installés (et dont vous n'avez plus besoin)

sudo apt-get clean

Pour supprimer toutes les archives stockées dans votre cache pour les packages qui ne peuvent plus être téléchargés (donc les packages qui ne figurent plus dans le référentiel ou qui ont une version plus récente dans le référentiel).

sudo apt-get autoclean

Pour supprimer les packages inutiles (après la désinstallation d'une application, il peut y avoir des packages dont vous n'avez plus besoin)

sudo apt-get autoremove

Pour supprimer les anciennes versions du noyau

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

Si vous ne savez pas quelle version du noyau supprimer

dpkg --get-selections | grep linux-image

Source: Limpiando Ubuntu: commandes et programmes (actualisation) ( google traduit )

DrKenobi
la source
1
Courir cleanlibéré un peu d'espace. Immédiatement après, j'ai couru autocleanet mon espace libre a diminué de 45 Mo. Courir à cleannouveau libéré cet espace supplémentaire.
Drew Noakes
8
J'ai enlevé toutes les images linux énumérées, dpkg --get-selections | grep linux-imagece qui m'a causé une erreur de démarrage - Ubuntu a disparu du menu de démarrage Grub - cette réponse a résolu le problème - essayez de ne pas supprimer la dernière image
laplasz
Que faisons-nous exactement lorsque nous supprimons les images Linux?
Menelaos Bakopoulos
4
Ok, cela a déjà été répondu 100 fois (et dans ce fil également), mais je trouve vraiment étrange d'être voté 160 fois, car: sudo apt-get clean cela supprimera simplement les paquets de toutes les copies locales des paquets que vous pourriez avoir téléchargé lors d'une installation + mise à niveau. Cela viderait presque le répertoire / var / cache / apt / archives. ... Ainsi, la prochaine fois que vous l'utiliserez, sudo apt-get updatetout sera à nouveau téléchargé (déjà là). Juste un heads-up! .. :)
Nostromov
168
  • affiche les 10 plus grands sous-répertoires du répertoire en cours.

    du -sk * | sort -nr | head -10
    
  • utilisez filelight ou kDirStat pour voir où l'espace disque est visible

  • vérifier si vous avez de vieux noyaux à supprimer

    ls -lh /boot
    
  • forfaits de nettoyage

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    voir la liste de tous les paquets installés, triés par taille. Si vous voyez quelque chose de gros et ne l'utilisez pas - désinstallez-le

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • nettoyer les fichiers de langue inutilisés avec les traductions (il y en a des tonnes)

    sudo apt-get install localepurge
    
  • vérifier le contenu de / var / tmp /

    du -sh /var/tmp/
    
  • vérifier aussi

    man deborphan
    
  • Recherche de gros fichiers:

    find / -type f -size +1024k
    

    ou

    find / -size +50000  -exec ls -lahg {} \;
    
  • gros paquets installés

    dpigs
    

cela fait partie du paquet: debian-goodies

jet
la source
4
Pour suggérer des fichiers volumineux, je suggère ncdu, ce qui offre un moyen rapide de voir quels répertoires utilisent votre espace disque
rubo77
1
kDirStatest remplacé parbaobab
rubo77
17

Je viens de libérer presque 2 concerts en supprimant les anciens noyaux et les fichiers d'en-tête:

utilisation

uname -r

pour vérifier votre version actuelle, puis

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

pour voir tous les anciens noyaux et fichiers d’en-tête, puis

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

la apt-get removecommande prend en charge les caractères génériques, ce que vous pouvez faire apt-get remove linux-image 3.0.* linux-headers-3.0.*par exemple pour en supprimer plusieurs à la fois.

Assurez-vous de ne pas supprimer le noyau actuel, bien sûr! Et peut-être garder une ou deux anciennes versions, juste au cas où ... mais pas 10 ou 20!

hwjp
la source
Ce peu sur les wildcards? Avant de l'utiliser, je vérifiais cela car je l'avais essayé et j'en avais plus que je ne le voulais. Il est possible (peut-être même probable) que j'ai bourré d'une certaine manière, mais je ne sais pas comment et pourtant j'ai perdu plus d'en-têtes que je ne le voulais.
Glaucon
Les caractères génériques sont des caractères génériques de regex plutôt que des globs.
Chai T. Rex
13

N'oubliez pas de vider la corbeille.

entrez la description de l'image ici


Ou depuis la ligne de commande:

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

Je vous recommande vraiment le programme BleachBit, qui nettoie tout sur Ubuntu.

Installez-le en utilisant la commande suivante:

sudo apt-get install bleachbit

Gustavo va
la source
11

Désinstallez les gros paquets que vous n'utilisez pas

Certains paquets peuvent être assez volumineux. Un moyen pratique de les trouver est d'utiliser dpigs. Ce n'est pas installé par défaut mais peut être trouvé dans debian-goodies( projet GitHub )

sudo apt-get install debian-goodies

Ensuite:

$ 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

Il y a quelques options:

-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
la source
10

Supprimer toutes les anciennes versions du noyau automatiquement

Attention: Si vous venez de mettre à jour le noyau, redémarrez avant de supprimer les anciennes versions!

N'oubliez pas de vérifier quel noyau vous utilisez, tapez:

uname -r

Puis en tant que root:

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

lisez ce fil pour être sûr de ne pas supprimer les noyaux nécessaires avec cette commande!

rubo77
la source
8

Si vous utilisez UFW, vérifiez le dossier du journal. Sur l'une de mes machines, UFW générait 8 Go de journaux en quelques jours.

Vous pouvez aussi vider le cache d'apt avec:

sudo apt-get clean
lovinglinux
la source
Étais-je en mesure de trouver des fichiers journaux UfW?
Apprenti curieux
8

Essayez d’utiliser BleachBit ( situé sur sourceforge ). C'est un excellent programme. L'idée de base est que cela libère rapidement de l'espace disque et supprime une grande partie des fichiers indésirables cachés dans le système. Il y a environ 70 applications qu'il peut reconnaître et effacer. Il est également possible de l'utiliser pour "effacer" l'espace disque disponible. Je pense à CCleaner sous Windows uniquement pour Linux.

RunningUtes
la source
3
Notez que la question demande spécifiquement des outils serveur et qu'il s'agit d'un programme de bureau (nécessite l'affichage X).
Ryre
Meilleur outil jusqu'à maintenant!
Roger
8

Recherchez également un grand nombre de fichiers journaux:

sudo du -h /var/log

Ou, comme le fait remarquer rubo77 dans les recommandations, vous pouvez utiliser l'outil d'utilisation du disque NCurses:

sudo ncdu /var/log
Drew Noakes
la source
commande pratique qui répertorie la taille du fichier et non "le nombre de fichiers journaux"
dogmatic69
ou utilisezsudo ncdu /var/log
rubo77
@ rubo77, merci, c'est un outil vraiment sympa!
Drew Noakes
4

Premièrement, il existe un outil permettant de répertorier tous les gros dossiers et fichiers. Il suffit de taper 'Baobab' dans le lanceur. En supprimant les dossiers et les fichiers, vous n’avez pas besoin d’obtenir plus d’espace.


Ensuite, il existe un programme pour supprimer les fichiers doubles. Le programme s'appelle fslint. Installez-le en entrant

sudo apt-get install fslint

dans un terminal.

ou graphiquement

Installer fslint via le centre logiciel


Vous pouvez également vider le cache du paquet avec

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

La quatrième étape consiste à supprimer les anciennes entrées du noyau. Vous pouvez le faire en installant et en ouvrant Synaptic. Dans Synaptic, recherchez les anciennes entrées du noyau (toutes les entrées du noyau affichées dans GRUB sauf les plus récentes) et supprimez-les.


Une bonne étape consiste à supprimer le cache de l'application. Faites ceci en installant et en exécutant bleachbit:

sudo apt-get install bleachbit

ou graphiquement

Installer bleachbit via le centre logiciel

Important: le cache supprimé ne peut pas être restauré!


La dernière étape consiste à défragmenter le système de fichiers. Procédez comme suit pour cela:

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

Avec ces commandes, vous téléchargez et compilez e2fsprogs. (Si vous ou la communauté avez un meilleur moyen d'installer le programme, éditez-le!)

Assurez-vous également qu'il git-coreest installé. Si non, exécutez:

sudo apt-get install git-core 

ou en utilisant le centre logiciel Installez git-core via le centre de logiciel

Vous pouvez maintenant exécuter le programme avec:

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

Remplacez / dev / sda1 par le système de fichiers ou le dossier / fichier souhaité. Notez que pour défragmenter un périphérique (tel qu'un disque dur), vous devez disposer des privilèges root, mais pas de vos propres fichiers.


Source (allemand): ici

slashcrack
la source
Wow, la suppression d'anciennes versions de linux-header et linux-image a permis de libérer environ un disque et demi lors de l'installation de la version 10.04. FSLint est également une bonne trouvaille. Merci.
BradDock
Au lieu de baobab, vous pouvez également utiliser l'outil de ligne de commande ncdu pour rechercher des dossiers et des fichiers volumineux:sudo apt-get install ncdu
rubo77
4

script plus propre

Ce script exécutera les plus gros morceaux de la console:

  • Nettoyer le cache d'apt
  • Supprimez les fichiers de configuration laissés des packages .deb désinstallés (cela se produit si vous n'utilisez pas le --purgecommutateur avec apt-get)
  • Supprimez tous les noyaux sauf celui que vous utilisez
  • Vider les corbeilles de chaque utilisateur (y compris root)

créez un fichier avec ce contenu et donnez-lui les droits exécutables:

#!/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

Adapté de 71529-ubucleaner.sh


trouver des dossiers et des paquets volumineux

Quelques outils qui vous aideront à trouver des dossiers et des packages volumineux:

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

Utilisez localepurge pour désinstaller les langues inutilisées de votre système:

sudo apt-get install localepurge

supprimer les anciennes images snapd

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

bleachbit

Un excellent outil graphique pour répondre à tous les besoins:

sudo apt-get install bleachbit

supprimer les pages de manuel et la documentation

De plus, vous pouvez supprimer les pages de manuel et la documentation comme décrit dans le wiki d'Ubuntu :

Créez un fichier /etc/dpkg/dpkg.cfg.d/01_nodoc qui spécifie les filtres souhaités. Exemple:

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/*

Supprimez le même ensemble de fichiers et de répertoires dans le postinst de project-config. Exemple:

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
la source
En fonction de votre cas, vous pouvez trouver d'autres options dans ce script: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
rubo77
J'ai reçu un avertissement lors de l'exécution de ce script que j'étais sur le point de supprimer un noyau avec le même numéro de version que celui que j'utilisais.
Christophe De Troyer
Vérifiez le noyau actuel que vous utilisez avec uname -a. Dans le cas où vous venez de faire une mise à niveau avec apt-get avant et que vous avez un nouveau noyau, cela pourrait être la cause, que le kurnel actuel que vous utilisez n’est pas le plus récent installé? Faites un repoot puis avant de commencer ce script
rubo77
Le script minimiser.sh a été déplacé: github.com/boxcutter/debian/blob/master/script/minimize.sh
rubo77
3

Le répertoire '/ tmp' ne doit jamais être nettoyé manuellement sauf en cas d'absolue nécessité (par exemple, une application fermée ne nettoie pas après elle-même).

Vous pouvez rechercher où l'espace pourrait être en train de se remplir en utilisant la commande 'du'; les lieux d'intérêt sont généralement situés dans '/ var'. Pour nommer deux suspects habituels '/ var / log' et '/ var / cache'. Certains utilisateurs ont cependant installé un utilitaire de sauvegarde et ne se sont jamais rendu compte qu'il créait des Go de sauvegardes incrémentielles dans '/ var / backup' qui se sont accumulées en une semaine ou un mois pour occuper tout l'espace disque.

ibuclaw
la source
Je vous remercie!. Comme vous l’avez dit, j’ai de l’espace dans les Mo sous / var / cache et me demande comment supprimer les fichiers inutiles.
user3215
2

Utilisez ubuntu-tweak pour nettoyer.

il nettoie tous les fichiers * .deb téléchargés dans les applications d'installation.

mwm
la source
ne fonctionne pas avec KDE
rubo77
1

Si vous avez déjà supprimé beaucoup de courrier indésirable mais que l'espace disque ne semble pas nettoyé, il vous suffit de redémarrer Ubuntu. Ou si vous ne voulez pas redémarrer, lancez la commande comme dans une question similaire .

sudo service rsyslog restart
Maxim Yefremov
la source
0

Lorsque j'ai besoin de libérer de l'espace sur les serveurs, j'utilise cette commande. Il trouve tous les fichiers de plus de 50 Mo et "du -h" fait une meilleure liste de fichiers et "sort -n" après la liste de tubes crée numericcaly triée par taille.

find / -size +50M -type f -exec du -h {} \; | sort -n
zorbon.cz
la source
1
Vous feriez mieux d'utiliser de la poussière à la ncdu /place
rubo77
1
Étant donné du -h, utilisez sort -haussi bien.
Muru
-3
uname -r 

(pour voir le vôtre)

apt-get remove linux-image 3.0.* 

(vos anciennes versions). Cela m'a donné 600 Mo d'espace libre.

Adi Kwok
la source
3
Réduit parce que avec des commandes comme celle-ci, si vous ne faites pas attention, vous pouvez supprimer le dernier noyau (ou même tous les noyaux).
Ndemou