Translation(s): Deutsch - English - Italiano


Liberare spazio su disco

Questa pagina tratta i modi per scoprire quanto dello spazio di archiviazione del sistema è usato e come liberarne un po'.

Per una descrizione di come ridurre l'impronta di un'installazione Debian vedere Ridurre Debian.

Vedere l'uso di partizioni e dischi

Prima di tutto, per vedere le partizioni esistenti, usare:

sfdisk -l

Poi, per controllare quali partizioni stanno diventando piene usare:

$ df -lhT

$ df --local --human-readable -T
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext4    100M  77M  33M  77% /
...

Partizioni piene

Se una partizione diventa piena il sistema può non funzionare correttamente.

Quando la directory Home di un utente diventa piena, l'utente non potrà più salvare alcun file e alcune applicazioni possono rifiutarsi di avviare correttamente.

Quando la directory temporanea (/tmp) diventa piena, molte applicazioni falliscono con messaggi di errore del tipo:

cannot create temp file for document: No space left on device

Vedere quali directory usano la maggior parte dello spazio su disco

Ci sono diversi strumenti per vedere quali directory stanno usando la maggior parte dello spazio su disco in un sistema Debian, come baobab (GUI) o il programma a riga di comando du nel pacchetto coreutils che può essere usato in questo modo:

/usr/bin/du --total --summarize --human-readable --one-file-system

Vedere anche ncdu.

Ncdu è un visualizzatore dell'uso del disco basato su ncurses. Fornisce un'interfaccia veloce e facile da usare e permette di navigare le directory, di mostrare la percentuale di uso del disco e di eliminare file non desiderati.

Vedere quali pacchetti stanno usando più spazio su disco

Riga di comando

Per elencare i pacchetti che usano più spazio usando aptitude in modalità visuale, selezionare Viste → Nuovo elenco unico dei pacchetti (questa voce di menu è disponibile solamente a partire dalla versione etch), premere l e inserire ~i, premere S e inserire ~installsize; si ottiene così un bell'elenco con cui lavorare. Per avere accesso a questa nuova funzionalità bisogna aver aggiornato aptitude.

In lenny, aptitude ha "why" e "why-not".

 aptitude why pacchetto1 

mostra perché è stato installato pacchetto1.

 aptitude why pacchetto1 pacchetto2 

cerca di capire perché installare il pacchetto1 comporterebbe l'installazione di pacchetto2.

"why-not" guarda i conflitti.

Questi comandi forniscono solo una possibile spiegazione. Per avere informazioni conclusive controllare /var/log/aptitude.

Uso di aptitude per elencare pacchetti raccomandati o suggeriti che non sono installati:

aptitude search '~RBsuggests:~i!~i'

Per elencare i pacchetti aggiornabili:

aptitude search '~U'

Per elencare i pacchetti installati manualmente:

aptitude search '~i!~M'

Per installare senza i pacchetti raccomandati ma non disinstallando gli altri raccomandati:

aptitude install -R -o Aptitude::Keep-Recommends=true

Per elencare i pacchetti in ordine crescente di dimensione:

aptitude -F '%I %p' search '~i'|egrep '^[0-9]+[\.,]?[0-9]* [MG]B'|sort -n

Rimuovere un po' di sporco

Eliminare file di configurazione obsoleti:

aptitude purge ~c

Take a look at the Debian Cleanup Tips at http://raphaelhertzog.com/mastering-debian/.

Uso di dpigs (debian-goodies):

dpigs -n50

Uso di wajig :

wajig size

Ordinare i pacchetti installati in base alla dimensione:

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

Interfaccia grafica

synaptic, andare nei pacchetti installati e cliccare sulla colonna della dimensione.

Trovare cose da eliminare

Directory definitivamente sacrificabili

Temporanee

/tmp
/var/tmp

Il contenuto di queste directory è solo pensato per essere usato nel breve termine o mentre un programma è in esecuzione ed è generalmente eliminabile.

File di registro

/var/log

Cache

apt-get clean

o

aptitude clean

Usare apt-get autoclean se si desiderano rimuovere i vecchi pacchetti per i quali si ha anche il pacchetto più recente.

Spool

Le cose in

/var/spool

sono pensate per essere elaborate ma possono essere sacrificabili.

Strumenti a riga di comando per vedere i file usati raramente

Questi strumenti funzionano solo se i filesystem sono solitamente montati con l'opzione strictatime.

/usr/bin/find

In questo caso, sono particolarmente interessanti le seguenti opzioni.

Gestire i duplicati

Quando si trovano duplicati si possono creare collegamenti fisici, se i duplicati sono sullo stesso file system, oppure si possono eliminare i duplicati per rendere unici i file rimanenti.

Strumenti di ricerca

File non desiderati

Pacchetti non desiderati

Strumenti per alterare i file per rimpicciolirli

Usare strip su dbus-daemon smaschera un bug in BFD. L'esecuzione di find /usr/bin -not -name strip -and -not -name dbus-daemon -execdir strip --strip-unneeded '{}' \;  ha ridotto la dimensione del contenuto della directory in un'installazione Squeeze da 140MB a 120MB.

Non comprimere bash o i propri script andranno in crash. Gli eseguibili compressi possono aver bisogno di più memoria per essere eseguiti.

Convertire gli spazi in tabulazioni

Convertire gli spazi in tabulazioni può ridurre la dimensione dei file di testo, anche se la differenza è di solito minima. Per questo esempio sono necessari i comandi find in findutils, unexpand in coreutils e rewrite, che si può trovare su https://oss.ezic.com ma non è disponibile come pacchetto.

find -type f -writable -name '*.txt' -exec rewrite '{}' 'unexpand --all' \;

Ridurre la creazione dei dati

Usare la riga seguente come file di configurazione di /etc/rsyslog.conf allo scopo di non salvare i file di registro ma di mandare il loro output sul terminale virtuale 12:

*.* -/dev/tty12

In quei casi in cui un collegamento simbolico non funzionerebbe, si può fare in modo che l'output che andrebbe in file venga diretto in /dev/null, come in questo esempio che ridirige l'output di .xsession-errors:

mknod .xsession-errors c 1 3

Nei sistemi in esecuzione da molto tempo si può considerare l'idea di rimuovere o comprimere i vecchi file di registro; logrotate può essere di aiuto.

File system

ReiserFS è in grado di archiviare più file di piccole dimensioni e gli estremi dei file di grandi dimensioni in blocchi condivisi, risparmiando spazio.

Per i file system a blocchi che non mettono parti di più di un file in un blocco, come Ext4FS: utilizzare una dimensione dei blocchi diversa per il file system può risparmiare spazio a seconda delle dimensioni dei file memorizzati. Una dimensione del blocco di 1KB riduce l'uso dello spazio rispetto a 4KB per un'installazione di Debian.

A livello applicazione / In spazio utente

In Linux

Poca certezza di un'elevata affidabilità

Questi file system potrebbero non essere abbastanza affidabili per l'archiviazione di dati critici.

Disabilitare i blocchi riservati su ExtFS

ExtFS riserva, in modo predefinito, il 5% del file system per l'utente 'root' come misura di sicurezza. Per disabilitare questa funzionalità:

tune2fs -r 0 /dev/sda2

Può essere fatto anche su un file system montato.

Archiviazione offline

Si possono spostare dati in un'archiviazione non in linea, come dischi ottici rimovibili o dischi su un bus dati esterno (come Firewire o USB).

Se si ha una fonte in sola lettura, come un disco ottico scrivibile una sola volta, un file system sovrapposto unificato come aufs o "union mount" di Linux può salvare i cambiamenti in un file system scrivibile, risparmiando all'utente lo spazio delle porzioni immutate. La stessa cosa può essere ottenuta con istantanee di file system come con Linux Volume Manager (lvm2).

Compressione dei file

I seguenti pacchetti forniscono programmi per comprimere dati senza perdita e possono operare tramite pipe o direttamente sui file:

Articolo sulle compressioni in parallelo

Desiderata

Vedere anche


CategorySystemAdministration | CategoryStorage