Come risolvere l'errore del disco pieno sul server Linux?
Una guida per trovare file di grandi dimensioni, pulire in modo sicuro i log e liberare spazio sul server.
Uno dei problemi più comuni sui server Linux è che il disco si riempie completamente. Quando il disco è pieno, i siti Web non possono scrivere file, i servizi di database potrebbero smettere di funzionare, i server di gioco potrebbero non registrare i registri e alcuni servizi potrebbero non avviarsi affatto.
Questo errore viene solitamente riconosciuto dai seguenti sintomi:
- Impossibile caricare i file sul server
- Arresto o errore del servizio database
- Sul pannello viene visualizzato l'errore "Spazio esaurito sul dispositivo".
- Il server di gioco si spegne perché non è possibile accedere.
- Sui siti web si verificano 500 errori o pagine vuote
1. Controllo dell'utilizzo del disco
Innanzitutto, controlla quale partizione del disco sul server è piena.
df -h
qui soprattutto Utilizzo% viene considerata la zona Se una sezione è pari o superiore al 90%, significa che il rischio è iniziato. Se è pieno al 100%, i servizi non saranno in grado di scrivere file.
2. Trova le cartelle che occupano più spazio
Quando il disco è pieno, il problema solitamente riguarda i log, i backup o i file di cache accumulati in un'unica cartella. Controlla le cartelle di grandi dimensioni, iniziando dalla directory principale.
du -h --max-depth=1 / 2>/dev/null | sort -h
Questo comando mostra quanto spazio occupano le directory home. Di solito vengono controllate le seguenti directory:
- /var/log - Registri di sistema e di servizio
- /casa - File utente e sito web
- /backup - Vecchi file di backup
- /tmp - File temporanei
- /var/lib/mysql - File di database MySQL/MariaDB
3. Elenca file di grandi dimensioni
A volte un singolo file di registro può raggiungere i 10 GB o più. Per trovare file di grandi dimensioni, puoi utilizzare questo comando:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullQuesto comando elenca i file superiori a 500 MB. Esaminare attentamente i file risultanti. Particolarmente .tronco d'albero, .vecchio, .gz, .bak e i vecchi file di backup dovrebbero essere controllati.
4. Pulizia sicura dei file di registro
L'eliminazione diretta del file di registro di un servizio in esecuzione a volte non fornisce il risultato atteso. Perché il servizio può continuare a mantenere aperto il file. Pertanto, il metodo più sicuro quando si puliscono file di registro di grandi dimensioni è svuotare il file.
truncate -s 0 /var/log/dosya_adi.log
Esempio:
truncate -s 0 /var/log/syslog truncate -s 0 /var/log/messages truncate -s 0 /var/log/nginx/error.log
5. Pulizia della cache dei pacchetti
Sui sistemi basati su Ubuntu e Debian, i file della cache dei pacchetti potrebbero occupare spazio su disco nel tempo.
apt clean apt autoremove -y
Sui sistemi CentOS, AlmaLinux o Rocky Linux:
yum clean all dnf clean all
6. Controllo dei vecchi backup
I file che occupano più spazio sui server di hosting e di gioco sono solitamente vecchi backup. Soprattutto se è presente un sistema di backup automatico, è possibile che ogni giorno vengano eseguiti nuovi backup e che i vecchi backup non vengano eliminati.
find /backup -type f -mtime +7 -name "*.tar.gz" -ls
Questo comando elenca i backup più vecchi di 7 giorni. Per eliminare dopo esserti assicurato:
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
7. Impedisci il ricaricamento con l'impostazione Logrotate
Anche se il disco viene pulito, se la causa non viene eliminata, lo stesso problema si ripresenterà dopo alcuni giorni. Per questo è necessario verificare la configurazione di logrotate.
nano /etc/logrotate.conf
Esempio semplice logica logrotate:
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}Questa impostazione restituisce i file di registro quotidianamente, li conserva per 7 giorni e comprime i vecchi registri.
Errori comuni
- Eliminazione di file di sistema senza sapere di quale file si tratta
- Eliminazione del file di registro in esecuzione e mancato riavvio del servizio
- Conservazione dei vecchi backup per un periodo di tempo illimitato
- Non controllo affatto le impostazioni di logrotate
- Non intervenire finché il disco non è pieno al 100%.
Domande frequenti
Perché il server restituisce un errore quando il disco è pieno?
Perché i servizi non possono scrivere log, cache, file temporanei o database. I servizi potrebbero arrestarsi quando l'operazione di scrittura non riesce.
È meglio cancellare o svuotare il file di log?
Invece di eliminare completamente il file di registro nei servizi in esecuzione troncare È più sicuro svuotarlo utilizzando.
Ho pulito il disco ma lo spazio non è stato liberato, perchè?
Il file eliminato potrebbe essere ancora mantenuto aperto da un servizio in esecuzione. Potrebbe essere necessario riavviare il servizio in questione.
Raccomandazioni su prestazioni e sicurezza
- Monitora regolarmente l'utilizzo del disco.
- Archivia i backup su un disco separato o su un'area di backup remota.
- Non lasciare un servizio in esecuzione per un lungo periodo senza utilizzare logrotate.
- Prendere precauzioni quando il disco raggiunge il livello dell'85%.
- Non lasciare i registri di debug costantemente aperti sui server di gioco.
Questo articolo è stato preparato appositamente per PvPServer.