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

Linux Sunucuda Disk Dolu Hatası Çözümü

Yazdır

Linux Sunucuda Disk Dolu Hatası Nasıl Çözülür?

Büyük dosyaları bulma, logları güvenli temizleme ve sunucuda tekrar yer açma rehberi.

Linux sunucularda en sık karşılaşılan problemlerden biri diskin tamamen dolmasıdır. Disk dolduğunda web siteleri dosya yazamaz, veritabanı servisleri çalışmayı durdurabilir, oyun sunucuları log kaydedemez ve bazı servisler hiç başlamayabilir.

Bu hata genellikle şu belirtilerle anlaşılır:

  • Sunucuya dosya yüklenememesi
  • Veritabanı servisinin kapanması veya hata vermesi
  • Panelde “No space left on device” hatası görülmesi
  • Oyun sunucusunun log yazamadığı için kapanması
  • Web sitelerinde 500 hatası veya boş sayfa oluşması
Önemli: Disk dolu hatasında rastgele dosya silmek tehlikelidir. Yanlış sistem dosyası silinirse servisler bozulabilir. Önce hangi klasörün yer kapladığını tespit etmek gerekir.

1. Disk Kullanımını Kontrol Etme

İlk olarak sunucuda hangi disk bölümünün dolduğunu kontrol edin.

df -h

Burada özellikle Use% alanına bakılır. Eğer bir bölüm %90 veya üzerindeyse artık risk başlamış demektir. %100 doluysa servisler dosya yazamaz hale gelir.

2. En Çok Yer Kaplayan Klasörleri Bulma

Disk dolu olduğunda genellikle sorun tek bir klasörde biriken loglar, yedekler veya cache dosyalarıdır. Kök dizinden başlayarak büyük klasörleri kontrol edin.

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

Bu komut, ana dizinlerin ne kadar yer kapladığını gösterir. Genellikle şu dizinler kontrol edilir:

  • /var/log - Sistem ve servis logları
  • /home - Kullanıcı ve web site dosyaları
  • /backup - Eski yedek dosyaları
  • /tmp - Geçici dosyalar
  • /var/lib/mysql - MySQL/MariaDB veritabanı dosyaları

3. Büyük Dosyaları Listeleme

Bazen tek bir log dosyası 10 GB veya daha fazla büyüyebilir. Büyük dosyaları bulmak için şu komutu kullanabilirsiniz:

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

Bu komut 500 MB üzerindeki dosyaları listeler. Çıkan dosyaları dikkatle inceleyin. Özellikle .log, .old, .gz, .bak ve eski yedek dosyaları kontrol edilmelidir.

Güvenli yaklaşım: Dosyanın ne olduğunu bilmiyorsanız silmeyin. Önce dosya yoluna ve bağlı olduğu servise bakın.

4. Log Dosyalarını Güvenli Temizleme

Çalışan bir servisin log dosyasını doğrudan silmek bazen beklenen sonucu vermez. Çünkü servis dosyayı açık tutmaya devam edebilir. Bu yüzden büyük log dosyalarını temizlerken en güvenli yöntem dosyanın içini boşaltmaktır.

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

Örnek:

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

5. Paket Cache Temizliği

Ubuntu ve Debian tabanlı sistemlerde paket cache dosyaları zamanla disk alanı kaplayabilir.

apt clean
apt autoremove -y

CentOS, AlmaLinux veya Rocky Linux sistemlerde:

yum clean all
dnf clean all

6. Eski Yedekleri Kontrol Etme

Hosting ve oyun sunucularında en çok yer kaplayan dosyalar genellikle eski yedeklerdir. Özellikle otomatik backup sistemi varsa her gün yeni yedek alınıp eski yedekler silinmiyor olabilir.

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

Bu komut 7 günden eski yedekleri listeler. Emin olduktan sonra silmek için:

find /backup -type f -mtime +7 -name "*.tar.gz" -delete
Dikkat: Delete komutunu kullanmadan önce mutlaka listeleme komutu ile hangi dosyaların silineceğini kontrol edin.

7. Logrotate Ayarı ile Tekrar Dolmayı Önleme

Disk temizlense bile sebep düzeltilmezse birkaç gün sonra aynı problem tekrar yaşanır. Bunun için logrotate yapılandırması kontrol edilmelidir.

nano /etc/logrotate.conf

Örnek basit logrotate mantığı:

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

Bu ayar log dosyalarını günlük döndürür, 7 gün saklar ve eski logları sıkıştırır.

Sık Yapılan Hatalar

  • Hangi dosya olduğunu bilmeden sistem dosyalarını silmek
  • Çalışan log dosyasını silip servisi yeniden başlatmamak
  • Eski yedekleri sınırsız süre saklamak
  • Logrotate ayarlarını hiç kontrol etmemek
  • Disk %100 dolana kadar müdahale etmemek

FAQ

Disk dolu olunca sunucu neden hata verir?
Çünkü servisler log, cache, geçici dosya veya veritabanı yazma işlemi yapamaz. Yazma işlemi başarısız olunca servisler kapanabilir.

Log dosyasını silmek mi yoksa boşaltmak mı daha doğru?
Çalışan servislerde log dosyasını tamamen silmek yerine truncate ile içini boşaltmak daha güvenlidir.

Disk temizledim ama alan boşalmadı, neden?
Silinen dosya hâlâ çalışan bir servis tarafından açık tutuluyor olabilir. İlgili servisi yeniden başlatmak gerekebilir.

Performans ve Güvenlik Önerileri

  • Disk kullanımını düzenli takip edin.
  • Yedekleri ayrı bir diskte veya uzak backup alanında saklayın.
  • Logrotate kullanmadan uzun süre çalışan servis bırakmayın.
  • Disk %85 seviyesine geldiğinde önlem alın.
  • Oyun sunucularında debug loglarını sürekli açık bırakmayın.

Bu makale PvPSunucusu için özel olarak hazırlanmıştır.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner