Leggi il segnale
Parti dal testo esatto dell’errore e dall’ora nel log. Poi restringi la causa prima di cambiare qualcosa.
cp: cannot create regular file '/var/www/nextcloud/data/upload.tmp': No space left on device
Restringi le possibili cause
- Inode esauriti da milioni di file piccoli (sessioni PHP, cache, coda di posta, Maildir).
- File cancellati ma ancora aperti (ad esempio log) continuano a occupare spazio finché il processo non li chiude.
- Blocchi riservati a root (5% di default su ext4): gli utenti normali vedono già il disco pieno.
- È pieno un altro filesystem, ad esempio
/tmpsu tmpfs o un volume Docker.
Controlla prima di cambiare
Spazio per filesystem
df -hUso degli inode per filesystem
df -iTrova file cancellati ancora aperti
sudo lsof +L1Trova le directory con più file
sudo du --inodes -x /var 2>/dev/null | sort -n | tail -n 15
Correggi e riprova
- Cancella in modo mirato le masse di file piccoli, ad esempio le sessioni vecchie:
find /var/lib/php/sessions -type f -mmin +1440 -delete. - Riavvia il processo che tiene aperto il file cancellato, oppure svuotalo con
: > /proc/<PID>/fd/<FD>. - Configura bene logrotate (
postrotatecon reload ocopytruncate) così i log aperti non vengono cancellati. - Sui dischi solo dati riduci la riserva:
tune2fs -m 1 /dev/sdb1.
Poi ripeti l’azione iniziale e confronta il risultato con l’errore di partenza.
Annota per il prossimo ticket
Annota l’errore esatto, il risultato del controllo, la modifica e la nuova prova. Il team avrà un punto di partenza utile nel prossimo caso.
Posso aumentare il numero di inode dopo?
Su ext4 no, serve riformattare. XFS e Btrfs allocano gli inode dinamicamente. A lungo termine va eliminata la causa di tutti quei file piccoli.
Guida completa all’errore: No space left on device anche se df mostra spazio libero