GNU/Linux >> Linux Esercitazione >  >> Linux

l'eliminazione dei file ma lo spazio su disco è ancora pieno

Qui potrebbero accadere due cose.

Prima , il tuo filesystem ha riservato dello spazio che solo root può scrivere, in modo che il processo di sistema critico non cada quando gli utenti normali esauriscono lo spazio su disco. Ecco perché vedi 124G di 130G utilizzati, ma zero disponibili. Forse i file che hai eliminato hanno ridotto l'utilizzo fino a questo punto, ma non al di sotto della soglia per gli utenti normali.

Se questa è la tua situazione e sei disperato, potresti essere in grado di modificare la quantità di spazio riservato a root . Per ridurlo all'1% (il valore predefinito è 5%), il tuo comando sarebbe

# tune2fs -m 1 /dev/sda3

Secondo , il sistema operativo non rilascerà spazio su disco per i file eliminati che sono ancora aperti. Se hai eliminato (diciamo) uno dei file di registro di Apache, dovrai riavviare Apache per liberare spazio.


Se elimini un file utilizzato da un processo, non puoi più visualizzare il file entro ls . Il processo continua a scrivere su quel file fino a quando non lo interrompi.

Per visualizzare i file eliminati, esegui semplicemente lsof|grep delete


Altri 2 modi per ottenere il disco è pieno problema:

1) nascosto sotto un punto di montaggio: Linux mostrerà un disco intero con file "nascosti" sotto un punto di montaggio. Se si dispone di dati scritti sull'unità e si monta un altro filesystem su di essa, Linux rileva correttamente l'utilizzo del disco anche se non è possibile visualizzare i file sotto il punto di montaggio. Se hai montaggi nfs, prova a smontarli e cerca di vedere se qualcosa è stato scritto accidentalmente in quelle directory prima del montaggio.

2) file danneggiati: Lo vedo occasionalmente su Windows al trasferimento di file Linux tramite SMB. Un file non riesce a chiudere il descrittore di file e si finisce con un file di spazzatura da 4 GB.

Questo può essere più noioso da risolvere, perché devi trovare la sottodirectory in cui si trova il file, ma è facile da risolvere perché il file stesso è facilmente rimovibile. Uso il du comando ed eseguire un elenco delle sottocartelle root per scoprire dove viene utilizzato lo spazio file.

cd /
du -sh ./* 

Il numero di directory di primo livello è generalmente limitato, quindi ho impostato leggibile dall'uomo flag -h per vedere quale sottodirectory è il maiale spaziale.

Quindi inserisci il bambino problematico e ripeti il ​​​​processo per tutti gli elementi in esso contenuti. Per facilitare l'individuazione degli oggetti di grandi dimensioni, cambiamo leggermente du e lo accoppiamo con un ordinamento.

cd /<suspiciously large dir>
du -s ./* | sort -n

che produce un output dal più piccolo al più grande per dimensione in byte per tutti i file e le directory

4          ./bin 
462220     ./Documents
578899     ./Downloads
5788998769 ./Grocery List

Una volta individuato il file di grandi dimensioni, di solito puoi semplicemente eliminarlo.


Linux
  1. Amazon EC2 - disco pieno

  2. Come bloccare un file contro l'eliminazione ma renderlo comunque scrivibile?

  3. Eliminazione corretta di file più vecchi di 30 giorni

  4. Come posso elencare i file con percorsi completi in Linux?

  5. Nessuno spazio rimasto sul dispositivo, ma la partizione è piena solo per metà e gli inode sono disponibili

5 modi per liberare spazio su disco su Debian 10

Comprendere lo spazio su disco tramite il comando 'df' in Linux

Come cancellare lo spazio libero su disco in Linux?

Ricerca di file che utilizzano la maggior parte dello spazio su disco

I file vengono salvati su disco in sequenza?

Disco pieno, du dice diverso. Come approfondire?