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.