Come liberare spazio su disco?


181

Il mio server cloud Ubuntu ha lasciato solo 900 MB di spazio su disco.

Svuoterò semplicemente la directory / tmp e mi chiederò se ci sono altre posizioni da ripulire.


1
Prova anche questo: dpkg -l | grep ^ rc | cut -d '' -f3 | xargs sudo apt-get purge -y
— crsuarezf

Se si sta utilizzando la finestra mobile: docs.docker.com/config/pruning
— Gerard Carbó il

per molti casi:sudo docker container prune -f && sudo docker image prune -f
— smftr

Risposte:


104
sudo apt-get autoremove

Ciò può eliminare un sacco di guff (kernel vecchi, ecc.) Che sono stati sostituiti. Puoi fare una cosa simile in Synaptic (caricalo e seleziona il pulsante di stato e quindi l'opzione Auto-rimovibile).


non influenzerà l'esecuzione delle applicazioni come se rimuovesse qualsiasi pacchetto necessario da cui dipende qualsiasi applicazione ?.
— user3215

1
No. Autoremove cerca pacchetti orfani, vale a dire pacchetti che non hai installato esplicitamente (quelli contrassegnati come auto) e che non hanno dipendenze. Se lo usi aptitudeinvece di apt-get, può ripulire mentre procedi, ma è abbastanza comune per le installazioni più vecchie raccogliere una serie di kernel installati man mano che escono gli aggiornamenti di sicurezza.
— Oli

1
Errore di battitura nel mio ultimo commento. Intendevo dire che i pacchetti orfani sono quelli su cui non si fa affidamento, non quelli che "non hanno dipendenze". Potrebbero avere delle dipendenze e se fossero lì solo per quel pacchetto orfano, verrebbero rimossi. Alcune volte (con alberi di dipendenza molto profondi) possono essere necessari un paio di autorimoves per ripulire.
— Oli

5
Mentre il comando di cui sopra è certamente utile, sarà non , come detto, rimuovere vecchi kernel. Questo deve essere fatto manualmente o con strumenti aggiuntivi come Ubuntu Tweak.
— codifica il

1
@nyarlathotep Esso sarà rimuovere i file header del kernel, che a prima vista può far pensare che è la rimozione dei vecchi kernel - i vecchi kernel rimangono, tuttavia (provare dpkg --get-selections | grep linux-image).
— drevicko,

211

Per eliminare i pacchetti scaricati (.deb) già installati (e non più necessari)

sudo apt-get clean

Rimuovere tutti gli archivi memorizzati nella cache per i pacchetti che non possono più essere scaricati (quindi pacchetti che non sono più nel repository o che hanno una versione più recente nel repository).

sudo apt-get autoclean

Per rimuovere i pacchetti non necessari (dopo aver disinstallato un'app potrebbero esserci dei pacchetti che non ti servono più)

sudo apt-get autoremove

Per eliminare le vecchie versioni del kernel

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

Se non sai quale versione del kernel rimuovere

dpkg --get-selections | grep linux-image

Fonte: Limpiando Ubuntu: comandos y programas (actualización) ( traduzione di Google )


1
La corsa ha cleanliberato un bel po 'di spazio. Immediatamente dopo, ho corso autocleane il mio spazio libero è diminuito di 45 MB. Correre di cleannuovo ha rilasciato questo spazio extra.
— Ha disegnato Noakes l'

8
Ho rimosso tutta l'immagine di Linux elencata da dpkg --get-selections | grep linux-imagecui mi ha causato un errore di avvio - Ubuntu è scomparso dal menu di avvio di GRUB - questa risposta ha risolto il problema - prova a non rimuovere l'ultima immagine
— laplasz

Cosa stiamo facendo esattamente quando rimuoviamo le immagini di Linux?
— Menelaos Bakopoulos,

4
Ok, questo è già stato risposto 100 volte (e anche in questo thread), ma trovo davvero strano essere upvoted 160 volte, perché: sudo apt-get clean Sarà -simply- rimuovere i pacchetti tutto la copia locale dei pacchetti che si possono avere scaricato quando si esegue un'installazione + aggiornamento. Questo quasi svuota la directory / var / cache / apt / archives. ... Quindi la prossima volta sudo apt-get updateche eseguirai scaricherai di nuovo tutto (già lì). Solo un avvertimento! .. :)
— Nostromov,

168
  • mostra i 10 più grandi sottodir nella directory corrente.

    du -sk * | sort -nr | head -10
    
  • usa filelight o kDirStat per vedere dove sta andando visivamente lo spazio su disco

  • controlla se hai vecchi kernel per la cancellazione

    ls -lh /boot
    
  • pacchetti di pulizia

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    vedi l'elenco di tutti i pacchetti installati, ordinati per dimensione. Se vedi qualcosa di grosso e non lo usi, disinstallalo

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • pulire i file di lingua inutilizzati con le traduzioni (ce ne sono tonnellate)

    sudo apt-get install localepurge
    
  • controlla il contenuto di / var / tmp /

    du -sh /var/tmp/
    
  • controlla anche

    man deborphan
    
  • Cerca file di grandi dimensioni:

    find / -type f -size +1024k
    

    o

    find / -size +50000  -exec ls -lahg {} \;
    
  • grandi pacchetti installati

    dpigs
    

questo fa parte del pacchetto: debian-goodies


4
Per trovare file di grandi dimensioni ncdu, suggerisco , che fornisce un modo rapido per vedere quali directory utilizzano lo spazio su disco
— rubo77

1
kDirStatè sostituito dabaobab
— rubo77 il

17

Ho appena liberato quasi 2 concerti rimuovendo vecchi kernel e file di intestazione:

uso

uname -r

per controllare la tua versione attuale, quindi

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

per vedere tutti i vecchi kernel e file di intestazione, quindi

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

il apt-get removecomando supporta i caratteri jolly, quindi puoi fare apt-get remove linux-image 3.0.* linux-headers-3.0.*ad esempio per sbarazzarti di molti contemporaneamente.

Assicurati di non uccidere rimuovi il kernel corrente ovviamente! E forse mantieni una o due versioni precedenti, per ogni evenienza ... ma non 10 o 20!


Quel po 'sui caratteri jolly? Prima di usarlo lo ricontrollerei perché l'ho provato e ho ottenuto più di quanto volessi. È possibile (forse anche probabile) che io abbia riempito in qualche modo ma non so come e tuttavia ho perso più intestazioni di quanto volessi.
— Glaucon,

I caratteri jolly sono caratteri jolly regex anziché globs.
— Chai T. Rex,

13

Non dimenticare di svuotare il cestino.

inserisci qui la descrizione dell'immagine


O dalla riga di comando:

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

11

Ti consiglio davvero il programma BleachBit, che pulisce tutto su Ubuntu.

Installalo usando il seguente comando:

sudo apt-get install bleachbit


11

Disinstallare i pacchetti di grandi dimensioni che non si utilizzano

Alcuni pacchetti possono essere piuttosto grandi. Un modo conveniente per trovarli è usare dpigs. Non è installato per impostazione predefinita ma è disponibile in debian-goodies( progetto GitHub )

sudo apt-get install debian-goodies

Poi:

$ 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

Ci sono alcune opzioni:

-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.

10

Rimuovi automaticamente tutte le vecchie versioni del kernel

Attenzione: se hai appena aggiornato il kernel, riavvia prima di eliminare le versioni precedenti!

Ricorda di controllare quale kernel stai usando:

uname -r

Quindi come 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')

leggi quel thread per essere sicuro di non rimuovere i kernel necessari con questo comando!


8

Se usi UFW, controlla la cartella del registro. Su una delle mie macchine, UFW stava generando 8 GB di log in un paio di giorni.

Puoi anche svuotare la cache apt con:

sudo apt-get clean

Sono riuscito a trovare i file di registro UfW?
— Apprendista curioso,

8

Prova a usare BleachBit (che si trova su sourceforge ). È un grande programma. l'idea di base è che libera rapidamente spazio su disco e rimuove gran parte della posta indesiderata nascosta nel sistema. Ci sono circa 70 applicazioni che può riconoscere e pulire. C'è anche la possibilità di usarlo per "cancellare" lo spazio libero su disco. Lo penso come CCleaner da Windows solo per Linux.


3
Si noti che la domanda richiede specificamente strumenti server e questo è un programma desktop (richiede X display).
— Ryre,

Il miglior strumento fino ad ora!
— Roger

8

Verifica anche un numero elevato di file di registro:

sudo du -h /var/log

O come sottolinea rubo77 in encomi , è possibile utilizzare lo strumento di utilizzo del disco NCurses:

sudo ncdu /var/log

comando pratico che elenca le dimensioni del file e non il "numero di file di registro"
— dogmatic69

o utilizzaresudo ncdu /var/log
— rubo77 il

@ rubo77, grazie, è uno strumento davvero carino!
— Ha disegnato Noakes il

4

Innanzitutto, esiste uno strumento per elencare tutte le cartelle e i file di grandi dimensioni. Digita "Baobab" nel programma di avvio. Rimuovendo cartelle e file non è necessario ottenere più spazio.


Quindi, esiste un programma per la rimozione di file doppi. Il programma si chiama fslint. Installalo inserendo

sudo apt-get install fslint

in un terminale.

o graficamente

Installa fslint tramite il centro software


Puoi anche cancellare la cache del pacchetto con

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

Il quarto passo è rimuovere le vecchie voci del kernel. Puoi farlo installando e aprendo Synaptic. In Synaptic, cerca le vecchie voci del kernel (tutte le voci del kernel visualizzate in GRUB tranne la più recente) e rimuovile.


Un buon passo è rimuovere la cache dell'applicazione. Fallo installando ed eseguendo bleachbit:

sudo apt-get install bleachbit

o graficamente

Installa bleachbit tramite il centro software

Importante: la cache eliminata non può essere ripristinata!


L'ultimo passo è deframmentare il file system. Procedi come segue:

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

Con questi comandi, scarichi e compili e2fsprogs. (Se tu o la community hai un modo migliore per installare il programma, per favore modifica!)

Assicurati anche che git-coresia installato. In caso contrario, eseguire:

sudo apt-get install git-core 

o utilizzando Software Center Installa git-core tramite il centro software

Ora puoi eseguire il programma 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

Sostituisci / dev / sda1 con il file system o la cartella / file che desideri. Si noti che per deframmentare un dispositivo (come HDD) sono necessari i privilegi di root, ma non per i propri file.


Fonte (tedesco): qui


Wow, l'eliminazione delle vecchie versioni di intestazione linux e immagine linux è stata liberata di circa un concerto e mezzo con la mia installazione 10.04. fslint è anche un'ottima scoperta. Grazie.
— Braddock,

Invece di baobab puoi anche usare lo strumento da riga di comando ncdu per trovare file e cartelle di grandi dimensioni:sudo apt-get install ncdu
— rubo77

4

sceneggiatura più pulita

Questo script eseguirà i blocchi più grandi sulla console:

  • Pulisci cache apt
  • Rimuovi i file di configurazione lasciati dai pacchetti .deb disinstallati (succede se non usi lo --purgeswitch con apt-get)
  • Rimuovi tutti i kernel tranne quello che stai usando
  • Svuota i cestino di ogni utente (incluso root)

creare un file con questo contenuto e assegnargli i diritti eseguibili:

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

Adattato da 71529-ubucleaner.sh


trova cartelle e pacchetti di grandi dimensioni

Alcuni strumenti che ti aiuteranno a trovare cartelle e pacchetti di grandi dimensioni:

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

Utilizzare localepurge per disinstallare le lingue non utilizzate nel sistema:

sudo apt-get install localepurge

rimuovere le vecchie immagini snapd

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

BleachBit

Un ottimo strumento di interfaccia grafica per soddisfare tutte le esigenze:

sudo apt-get install bleachbit

rimuovere le manpage e la documentazione

Inoltre puoi rimuovere le manpage e la documentazione come descritto nel Wiki di Ubuntu :

Creare un file /etc/dpkg/dpkg.cfg.d/01_nodoc che specifica i filtri desiderati. Esempio:

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

Rimuovi lo stesso set di file e directory nel postinst del project-config. Esempio:

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

A seconda del tuo caso, puoi trovare alcune altre opzioni in questo script: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
— rubo77

Ho ricevuto un avviso durante l'esecuzione di questo script che stavo per rimuovere un kernel con lo stesso numero di versione che stavo eseguendo.
— Christophe De Troyer,

controlla l'attuale kernel con cui stai usando uname -a. Nel caso in cui tu abbia appena fatto un apt-get ugrade prima e abbia ottenuto un nuovo kernel, questa potrebbe essere la causa, che l'attuale kurnel che stai usando non è il più recente installato? Fai un repoot quindi prima di iniziare questo script
— rubo77

Lo script
— minim.sh

3

La directory '/ tmp' non dovrebbe mai essere ripulita manualmente se non in caso di assoluta necessità (es .: un'applicazione chiusa non ha ripulito dopo se stessa).

Puoi cercare dove si potrebbe riempire lo spazio usando il comando 'du'; di solito i luoghi di interesse si trovano all'interno di '/ var'. Per nominare due soliti sospetti '/ var / log' e '/ var / cache'. Sebbene abbia avuto alcuni utenti che installano un'utilità di backup e non si rendono mai conto che crea GB di backup incrementali in '/ var / backup' che si accumulano in una settimana o mese per riempire l'intero spazio su disco.


Grazie!. Come hai detto, ho un po 'di spazio occupato in MB in / var / cache e mi chiedo come rimuovere i file non necessari.
— user3215


1

Se hai già eliminato molta spazzatura ma lo spazio su disco non sembra pulito, riavvia Ubuntu. O se non vuoi riavviare, esegui il comando come in una domanda simile .

sudo service rsyslog restart

0

Quando ho bisogno di fare più spazio libero sui server, utilizzo questo comando. Trova tutti i file più grandi di 50 MB e "du -h" rende un elenco migliore di file e "ordina -n" dopo che pipe crea un elenco numerico ordinato per dimensione del file.

find / -size +50M -type f -exec du -h {} \; | sort -n

1
Faresti meglio a usare la polvere ncdu /invece
— rubo77

1
Dato du -h, utilizzare sort -hanche.
— muru,

-3
uname -r 

(per vedere il tuo)

apt-get remove linux-image 3.0.* 

(le tue versioni precedenti). Mi ha dato 600mb di spazio libero.


3
Sottovalutato perché con comandi come questo se non stai attento puoi rimuovere l'ultimo kernel (o anche tutti i kernel).
— ndemou,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.