PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Linux Serverdə Disk Tam Xəta Həlli

Yazdır

Linux Serverdə Disk Tam Xətasını necə həll etmək olar?

Böyük faylları tapmaq, qeydləri təhlükəsiz təmizləmək və serverdə yer boşaltmaq üçün bələdçi.

Linux serverlərində ən çox rast gəlinən problemlərdən biri diskin tamamilə dolmasıdır. Disk dolduqda vebsaytlar fayl yaza bilmir, verilənlər bazası xidmətləri fəaliyyətini dayandıra bilər, oyun serverləri qeydləri yazmaya bilər və bəzi xidmətlər ümumiyyətlə başlamaya bilər.

Bu səhv adətən aşağıdakı simptomlarla tanınır:

  • Faylları serverə yükləmək mümkün deyil
  • Verilənlər bazası xidmətinin bağlanması və ya xətası
  • Paneldə "Cihazda yer qalmadı" xətası görünür
  • Oyun serveri daxil ola bilmədiyi üçün bağlanır.
  • Veb saytlarda 500 səhv və ya boş səhifələr olur
Əhəmiyyətli: Disk dolu xəta halında təsadüfi faylların silinməsi təhlükəlidir. Səhv sistem faylı silinərsə, xidmətlər korlana bilər. Əvvəlcə hansı qovluğun yer tutduğunu müəyyən etmək lazımdır.

1. Disk İstifadəsinin Yoxlanması

Əvvəlcə serverdə hansı disk bölməsinin dolu olduğunu yoxlayın.

df -h

burada xüsusilə % istifadə edin sahəsi hesab olunur. Bölmə 90% və ya yuxarıdırsa, bu, riskin başladığı anlamına gəlir. 100% doludursa, xidmətlər faylları yaza bilməyəcək.

2. Ən çox yer tutan qovluqları tapın

Disk dolu olduqda, problem adətən bir qovluqda yığılmış qeydlər, ehtiyat nüsxələr və ya keş fayllarıdır. Kök qovluqdan başlayaraq böyük qovluqları yoxlayın.

du -h --max-depth=1 / 2>/dev/null | sort -h

Bu əmr ev kataloqlarının nə qədər yer tutduğunu göstərir. Adətən aşağıdakı kataloqlar yoxlanılır:

  • /var/log - Sistem və xidmət qeydləri
  • /ev - İstifadəçi və veb sayt faylları
  • /backup - Köhnə ehtiyat faylları
  • /tmp - Müvəqqəti fayllar
  • /var/lib/mysql - MySQL/MariaDB verilənlər bazası faylları

3. Böyük faylları siyahıya salın

Bəzən bir günlük faylı 10 GB və ya daha çox böyüyə bilər. Böyük faylları tapmaq üçün bu əmrdən istifadə edə bilərsiniz:

find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

Bu əmr 500 MB-dan çox faylları siyahıya alır. Yaranan faylları diqqətlə yoxlayın. Xüsusilə .log, .köhnə, .gz, .bak və köhnə ehtiyat faylları yoxlanılmalıdır.

Təhlükəsiz yanaşma: Əgər faylın nə olduğunu bilmirsinizsə, onu silməyin. Əvvəlcə fayl yoluna və onun qoşulduğu xidmətə baxın.

4. Günlük Faylların Təhlükəsiz Təmizlənməsi

Çalışan bir xidmətin gündəlik faylını birbaşa silmək bəzən gözlənilən nəticəni vermir. Çünki xidmət faylı açıq saxlamağa davam edə bilər. Buna görə də, böyük log fayllarını təmizləyərkən ən təhlükəsiz üsul faylı boşaltmaqdır.

truncate -s 0 /var/log/dosya_adi.log

Misal:

truncate -s 0 /var/log/syslog
truncate -s 0 /var/log/messages
truncate -s 0 /var/log/nginx/error.log

5. Paket Keşinin Təmizlənməsi

Ubuntu və Debian əsaslı sistemlərdə paket keş faylları zamanla diskdə yer tuta bilər.

apt clean
apt autoremove -y

CentOS, AlmaLinux və ya Rocky Linux sistemlərində:

yum clean all
dnf clean all

6. Köhnə ehtiyat nüsxələrin yoxlanılması

Hostinq və oyun serverlərində ən çox yer tutan fayllar adətən köhnə ehtiyat nüsxələridir. Xüsusilə avtomatik ehtiyat nüsxə sistemi varsa, hər gün yeni ehtiyat nüsxələri götürülə və köhnə ehtiyat nüsxələri silinməyə bilər.

find /backup -type f -mtime +7 -name "*.tar.gz" -ls

Bu əmr 7 gündən köhnə ehtiyat nüsxələrini sadalayır. Əmin olduqdan sonra silmək üçün:

find /backup -type f -mtime +7 -name "*.tar.gz" -delete
Diqqət: Sil əmrindən istifadə etməzdən əvvəl siyahı əmri ilə hansı faylların silinəcəyini yoxlamağa əmin olun.

7. Logrotate Parametrləri ilə Yenidən Yükləmənin qarşısını alın

Disk təmizlənsə belə, səbəb aradan qaldırılmasa, bir neçə gündən sonra eyni problem təkrarlanacaq. Bunun üçün logrotate konfiqurasiyası yoxlanılmalıdır.

nano /etc/logrotate.conf

Sadə logrotat məntiqinə misal:

/var/log/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Bu parametr gündəlik faylları qaytarır, onları 7 gün saxlayır və köhnə jurnalları sıxışdırır.

Ümumi Səhvlər

  • Sistem fayllarının hansı fayl olduğunu bilmədən silinməsi
  • Çalışan jurnal faylının silinməsi və xidmətin yenidən başlamaması
  • Köhnə ehtiyat nüsxələrini qeyri-məhdud müddətə saxlamaq
  • Logrotate parametrləri ümumiyyətlə yoxlanılmır
  • Disk 100% dolu olana qədər müdaxilə etməyin

Tez-tez verilən suallar

Disk dolu olduqda server niyə xəta verir?
Çünki xidmətlər qeydləri, keşləri, müvəqqəti faylları və ya verilənlər bazalarını yaza bilməz. Yazma əməliyyatı uğursuz olduqda xidmətlər bağlana bilər.

Günlük faylı silmək və ya boşaltmaq daha yaxşıdır?
Çalışan xidmətlərdə log faylını tamamilə silmək əvəzinə kəsmək İstifadə edərək onu boşaltmaq daha təhlükəsizdir.

Diski təmizlədim amma yer boşalmadı, niyə?
Silinmiş fayl hələ də işləyən xidmət tərəfindən açıq saxlanıla bilər. Müvafiq xidməti yenidən başlatmaq lazım ola bilər.

Performans və Təhlükəsizlik Tövsiyələri

  • Disk istifadəsini mütəmadi olaraq izləyin.
  • Ehtiyat nüsxələri ayrı diskdə və ya uzaq ehtiyat nüsxə sahəsində saxlayın.
  • Logrotate istifadə etmədən xidməti uzun müddət işlək vəziyyətdə qoymayın.
  • Disk 85% səviyyəsinə çatdıqda ehtiyat tədbirləri görün.
  • Sazlama qeydlərini oyun serverlərində daim açıq qoymayın.

Bu məqalə xüsusi olaraq PvPServer üçün hazırlanmışdır.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner