Usa ncdu su CasaOS quando devi individuare quali cartelle stanno effettivamente occupando spazio sul disco, ma esegui la scansione del percorso host corretto, non solo di un minuscolo file system del container. Per i sistemi Linux attuali, il progetto upstream fornisce binari statici e ncdu 2.x è il modo più rapido per analizzare interattivamente l'utilizzo del disco.
Il tutorial di BigBear del 2024 è utile come introduzione, ma non è necessario un container speciale dell'app store per usare ncdu. Per diagnosticare i problemi di spazio di archiviazione, un terminale host o un container con una destinazione montata esplicitamente in sola lettura offre maggiore trasparenza.
A cosa serve ncdu
ncdu è un analizzatore interattivo dell'utilizzo del disco. Esegue la scansione delle directory, le ordina in base alle dimensioni e consente di esplorare le cartelle più grandi senza concatenare manualmente du comandi.
L'attuale pagina del progetto ncdu elenca i binari statici di ncdu 2.x per x86_64, ARM e AArch64.
Inizia dal file system che è effettivamente pieno
Esegui:
df -h
Individua il mount con poco spazio libero. Poi esegui la scansione su quel mount invece di avviare ncdu alla cieca da /.
Scansiona un percorso dati di CasaOS
Esempi tipici:
ncdu /DATA
ncdu /media
ncdu /var/lib/docker
Il percorso esatto dipende dalla tua installazione. Se sospetti che la causa sia Docker o AppData, esamina direttamente quella posizione.
Fai attenzione durante la scansione degli elementi interni di Docker
/var/lib/docker contiene layer delle immagini, layer scrivibili, log e metadati. ncdu può mostrare quali directory sono grandi, ma eliminare manualmente file casuali di overlay può danneggiare lo stato di Docker.
Usa comandi di pulizia specifici per Docker per immagini, container e cache, invece di eliminare le directory interne dei layer tramite ncdu.
ncdu nei container ha una visibilità limitata
Se esegui ncdu all'interno di un container, vedrà solo i percorsi montati in quel container. La scansione della radice del container dice ben poco sull'utilizzo totale del disco di CasaOS.
Se preferisci Docker, monta il percorso host di destinazione in sola lettura ed esegui la scansione su quel mount. Mantieni disabilitata l'eliminazione durante la diagnosi.
Trova prima le cartelle AppData più grandi
Le app self-hosted possono accumulare miniature, log, cache, database e metadati scaricati. La guida allo spazio di archiviazione Docker spiega perché i dati AppData sull'host possono crescere anche quando le immagini dei container sono piccole.
Fonti comuni di consumo elevato di spazio
- cache della transcodifica dei contenuti multimediali;
- log JSON dei container;
- file di database;
- miniature delle foto e indici di machine learning;
- cartelle incomplete dei client di download;
- vecchi backup;
- immagini Docker e cache delle build.
Non eliminare nulla finché non sai chi gestisce la cartella
Usa ncdu per identificare il percorso di grandi dimensioni, quindi determina quale applicazione lo gestisce. Arresta l'applicazione pertinente prima di eliminare dati che potrebbero essere ancora in fase di scrittura.
Usa le esclusioni per rendere più utili le scansioni di grandi dimensioni
Su un server con condivisioni di rete montate, backup o dischi esterni, la scansione dell'albero sbagliato può richiedere molto tempo e mescolare archiviazioni non correlate in un unico risultato. Inizia dal punto di mount esatto mostrato da df -h e impedisci di attraversare i mount remoti, a meno che non siano loro il problema.
Per la risoluzione ripetuta dei problemi, ncdu può esportare i dati della scansione, così puoi confrontare la crescita nel tempo invece di ripetere la scansione di un filesystem enorme a ogni sessione.
Capire i file eliminati ma ancora aperti
A volte df segnala un filesystem pieno, mentre ncdu non riesce a trovare abbastanza file visibili da spiegarlo. Una delle cause può essere un processo che mantiene aperto un file già eliminato. La voce della directory non esiste più, ma i blocchi restano allocati finché il processo non chiude il file.
Quando il totale di ncdu e df differiscono significativamente, controlla i file eliminati ma ancora aperti con uno strumento come lsof +L1 se è disponibile sull'host. Il riavvio del servizio responsabile può liberare lo spazio dopo aver capito di cosa si tratta.
Usa ncdu come strumento di misurazione, non come criterio di pulizia
Una cache di grandi dimensioni può essere eliminata senza rischi, mentre una directory di database di dimensioni simili potrebbe essere fondamentale. Il valore di ncdu sta nel mostrare dove è finito lo spazio; spetta all'applicazione responsabile determinare come recuperarlo.
Domande frequenti
ncdu può eliminare i file?
Sì, ma elimina con cautela. Per i componenti interni di Docker, i database e i dati gestiti dalle applicazioni, è preferibile usare la procedura di pulizia dell'applicazione stessa.
Perché ncdu mostra meno spazio di df?
Tra le possibili cause ci sono file eliminati ma ancora aperti, directory inaccessibili, metadati del filesystem, snapshot o dati al di fuori del mount analizzato.
Devo installare BigBearCasaOS per installare ncdu?
No. È un'opzione di installazione. L'upstream attuale fornisce anche binari statici autonomi.
Da dove dovrei iniziare la scansione?
Usa df -h per identificare il mount completo, quindi analizza quel percorso esatto con ncdu.
