Cum se rezolvă eroarea completă a discului pe serverul Linux?
Un ghid pentru găsirea fișierelor mari, curățarea în siguranță a jurnalelor și eliberarea spațiului pe server.
Una dintre cele mai frecvente probleme pe serverele Linux este că discul devine complet plin. Când discul devine plin, site-urile web nu pot scrie fișiere, serviciile de baze de date pot înceta să funcționeze, serverele de jocuri pot să nu înregistreze jurnalele și este posibil ca unele servicii să nu pornească deloc.
Această eroare este de obicei recunoscută prin următoarele simptome:
- Nu se încarcă fișierele pe server
- Închidere sau eroare a serviciului de bază de date
- Apare pe panou eroarea „Fără spațiu rămas pe dispozitiv”.
- Serverul de joc se oprește deoarece nu se poate autentifica.
- Pe site-uri apar 500 de erori sau pagini goale
1. Verificarea utilizării discului
Mai întâi, verificați ce partiție de disc de pe server este plină.
df -h
aici mai ales Utilizați% se ia în considerare zona. Dacă o secțiune este de 90% sau mai mult, înseamnă că riscul a început. Dacă este plin 100%, serviciile nu vor putea scrie fișiere.
2. Găsiți folderele care ocupă cel mai mult spațiu
Când discul este plin, problema este de obicei jurnalele, copiile de rezervă sau fișierele cache acumulate într-un singur folder. Verificați folderele mari, pornind de la directorul rădăcină.
du -h --max-depth=1 / 2>/dev/null | sort -h
Această comandă arată cât spațiu ocupă directoarele de acasă. De obicei sunt verificate următoarele directoare:
- /var/log - Jurnalele de sistem și de service
- /acasă - Fișiere utilizator și site-ul web
- /backup - Fișiere de rezervă vechi
- /tmp - Fișiere temporare
- /var/lib/mysql - Fișiere de baze de date MySQL/MariaDB
3. Listați fișiere mari
Uneori, un singur fișier jurnal poate crește până la 10 GB sau mai mult. Pentru a găsi fișiere mari, puteți folosi această comandă:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullAceastă comandă listează fișierele de peste 500 MB. Examinați cu atenție fișierele rezultate. Mai ales .log, .vechi, .gz, .bak iar fișierele de rezervă vechi ar trebui verificate.
4. Curățarea în siguranță a fișierelor jurnal
Ștergerea directă a fișierului jurnal al unui serviciu care rulează uneori nu dă rezultatul așteptat. Deoarece serviciul poate continua să păstreze fișierul deschis. Prin urmare, cea mai sigură metodă atunci când curățați fișierele jurnal mari este golirea fișierului.
truncate -s 0 /var/log/dosya_adi.log
Exemplu:
truncate -s 0 /var/log/syslog truncate -s 0 /var/log/messages truncate -s 0 /var/log/nginx/error.log
5. Curățarea cache a pachetului
Pe sistemele bazate pe Ubuntu și Debian, fișierele cache ale pachetelor pot ocupa spațiu pe disc în timp.
apt clean apt autoremove -y
Pe sistemele CentOS, AlmaLinux sau Rocky Linux:
yum clean all dnf clean all
6. Verificarea backup-urilor vechi
Fișierele care ocupă cel mai mult spațiu pe serverele de găzduire și jocuri sunt de obicei copii de rezervă vechi. Mai ales dacă există un sistem de backup automat, se pot face copii de rezervă noi în fiecare zi și este posibil ca backupurile vechi să nu fie șterse.
find /backup -type f -mtime +7 -name "*.tar.gz" -ls
Această comandă listează copiile de rezervă mai vechi de 7 zile. Pentru a șterge după ce vă asigurați:
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
7. Preveniți reîncărcarea cu setarea Logrotate
Chiar dacă discul este curățat, dacă cauza nu este corectată, aceeași problemă va apărea din nou după câteva zile. Pentru aceasta, configurația logrotate trebuie verificată.
nano /etc/logrotate.conf
Exemplu de logică simplă de logrotate:
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}Această setare returnează fișierele jurnal zilnic, le păstrează timp de 7 zile și comprimă jurnalele vechi.
Greșeli comune
- Ștergerea fișierelor de sistem fără a ști ce fișier este
- Ștergerea fișierului jurnal care rulează și nu repornirea serviciului
- Păstrarea vechilor copii de rezervă pentru o perioadă nelimitată de timp
- Nu se verifică deloc setările logrotate
- Nu interveni până când discul este plin 100%.
Întrebări frecvente
De ce serverul dă o eroare când discul este plin?
Deoarece serviciile nu pot scrie jurnale, cache, fișiere temporare sau baze de date. Serviciile se pot opri atunci când operația de scriere eșuează.
Este mai bine să ștergeți sau să goliți fișierul jurnal?
În loc să ștergeți complet fișierul jurnal din serviciile care rulează trunchia Este mai sigur să-l goliți folosind.
Am curățat discul, dar spațiul nu a fost eliberat, de ce?
Fișierul șters poate fi încă menținut deschis de un serviciu care rulează. Poate fi necesar să reporniți serviciul relevant.
Recomandări de performanță și securitate
- Monitorizați regulat utilizarea discului.
- Stocați copiile de siguranță pe un disc separat sau pe o zonă de backup la distanță.
- Nu lăsați un serviciu în funcțiune mult timp fără a utiliza logrotate.
- Luați măsuri de precauție când discul atinge nivelul de 85%.
- Nu lăsați jurnalele de depanare deschise în mod constant pe serverele de joc.
Acest articol este pregătit special pentru PvPServer.