Come controllare lo spazio e gli inode del disco del tuo sito
Il 3 novembre 2026 df mostra i blocchi, df -i elenca gli inode, disk_free_space restituisce i byte liberi. Una cifra di byte non è la tabella degli inode. Non ho lanciato i comandi su un server di produzione.
In questa guida (4)
Se il tuo sito smette di salvare un file, la cifra dello spazio libero non basta. Il 3 novembre 2026 tre pagine ufficiali misurano tre cose diverse. df, nel manuale GNU coreutils, mostra i blocchi. df -i elenca gli inode al posto dei blocchi. disk_free_space di PHP restituisce i byte liberi. Un controllo che legge solo i byte non ha letto la tabella degli inode. Non ho lanciato questi comandi su un server di produzione.
Pagine aperte quel giorno: df(1), dal tarball coreutils-9.11.tar.xz prelevato il 3 agosto 2026, copyright 2026 della Free Software Foundation; inode(7), write(2) e open(2), dal tarball man-pages-6.19.tar.gz prelevato il 9 settembre 2026; disk_free_space e disk_total_space, entrambe con Last-Modified 3 novembre 2026 alle 04:08:14 GMT. Se la domanda è se il sito risponda ancora, la pagina sul monitoraggio è un altro controllo. La scelta della macchina sta nella pagina sul VPS e il dedicato. Riaprirlo da una copia è un'altra domanda.
Che cosa stampa df
La pagina documenta la versione GNU di df. Mostra lo spazio disponibile sul filesystem che contiene ogni file passato come argomento. Senza nomi, mostra lo spazio di tutti i filesystem montati. L'unità predefinita è il blocco da 1K. Se è impostata la variabile POSIXLY_CORRECT, i blocchi sono da 512 byte. Non mostra lo spazio di un filesystem non montato. L'opzione -h stampa potenze di 1024. L'opzione -H stampa potenze di 1000. L'opzione -i elenca le informazioni sugli inode invece dell'uso dei blocchi.
Un inode, nella pagina inode(7), è il contenitore dei metadati di un file. Ogni file di un filesystem ha un numero di inode unico dentro quel filesystem, non tra filesystem diversi. La pagina non dice quale errore arrivi quando i numeri disponibili sono finiti. Non aggiungo io quella frase.
Che cosa significa ENOSPC, e che cosa non dice
In write(2), ENOSPC significa che il dispositivo che contiene il file non ha spazio per i dati. In open(2), ENOSPC compare quando il percorso andava creato e il dispositivo non ha spazio per il nuovo file. In quelle due righe la parola inode non c'è. Un disco senza byte è descritto. Una tabella di inode esaurita è la lettura di df -i, ed è un'altra colonna. Le due righe di errore non dicono che i due casi coincidono. Per separarli servono entrambe le letture di df.
Che cosa vede PHP
disk_free_space accetta una directory e restituisce i byte disponibili, come float, oppure false se fallisce. Vale da PHP 4.1.0 fino a PHP 8, secondo l'intestazione della pagina. Se al posto della directory passi un nome di file, il comportamento è non specificato e può cambiare tra sistemi e versioni di PHP. La funzione non lavora sui file remoti: il percorso deve essere raggiungibile dal filesystem del server. L'esempio usa "/". Non restituisce un conteggio di inode.
disk_total_space, sulla sua pagina, restituisce il numero totale di byte del filesystem, sempre come float o false. Il commento dell'esempio, però, scrive "total number of bytes available". La descrizione, due righe sopra, dice il totale, non i byte liberi. Il 3 novembre 2026 le due frasi stanno sulla stessa pagina. Per sapere quanto resta libero, la funzione documentata è disk_free_space, non il commento dell'esempio di disk_total_space.
Tre letture, in ordine
Sulla macchina del sito, df senza -i dice i blocchi dei filesystem montati, nelle unità scritte sopra. df -i dice gli inode e non ripete quella colonna di byte. Una sonda PHP con disk_free_space dice i byte liberi di una directory locale, o false. Non sostituisce df -i. ENOSPC, da solo, dice che il manuale parla di mancanza di spazio. Non dice se sono finiti i blocchi o gli inode.
Questo vale per il df di GNU coreutils descritto in quella pagina. Un altro userland può stampare altro. Un pannello di hosting che mostra solo una quota è un quarto strumento, e non l'ho aperto. La fotografia sono dischi da 3,5 e 2,5 pollici smontati, di Jacek Halicki, 2019, CC BY-SA 4.0 su Wikimedia Commons. Non è una misura presa sul disco del tuo sito.


