Forum
Hata Çözümü

titantonnyKullanıcı·24.06.2026 22:33

Ubuntu Sunucuda Disk Doldu Hatası: Gereksiz Dosyalar Nasıl Bulunur?

2 görüntülenme 0 beğeni 0 cevap
Sunucuda “No space left on device” hatası gördüğümde ilk refleksim rastgele log silmek olmuyor. Önce gerçekten hangi bölümün dolduğunu ve problemin disk alanı mı yoksa inode sayısı mı olduğunu ayırmak gerekiyor.

Başlangıç için:

bash
df -h
df -i


`df -h` boş alanı, `df -i` ise dosya sayısını gösterir. Çok sayıda küçük cache veya session dosyası inode’ları tüketebilir; bu durumda gigabaytlarca boş alan görünse bile yeni dosya oluşturulamaz.

Kök dizinde en fazla yer kaplayan klasörleri görmek için:

bash
sudo du -xhd1 / | sort -h
sudo du -xhd1 /var | sort -h


Buradaki `-x` başka bağlı disklerin hesaba katılmasını engeller. Büyük tekil dosyaları bulmak için de şu komut kullanılabilir:

bash
sudo find / -xdev -type f -size +500M -printf '%s %p\n' 2>/dev/null | sort -n


En sık karşılaştığım alan tüketicileri:

- `/var/log` altında büyüyen uygulama logları
- Docker image, volume ve build cache dosyaları
- Eski kernel paketleri
- `/tmp` altında unutulan arşivler
- Web uygulamasının upload veya backup klasörü
- MySQL binary logları
- Silinmiş olmasına rağmen çalışan süreç tarafından açık tutulan dosyalar

Son madde özellikle şaşırtıcıdır. Dosyayı silersiniz ama süreç kapanmadığı için alan geri gelmez:

bash
sudo lsof +L1


Listede büyük bir log görünüyorsa ilgili servisi kontrollü yeniden başlatmak alanı serbest bırakabilir. Journal logları aşırı büyüdüyse önce kullanım miktarına bakıp süreye göre daraltılabilir:

bash
journalctl --disk-usage
sudo journalctl --vacuum-time=14d


Docker kullanıyorsanız `docker system df` ile neyin yer tuttuğunu görün. `docker system prune` komutunu ezbere çalıştırmayın; kullanılmayan ağları, image’ları ve bazı seçeneklerle volume’leri silebilir. Önce yedek ve bağımlılık kontrolü şart.

Temizlikten sonra logrotate ayarlarını, uygulama log seviyesini ve disk alarmını düzenlemek kalıcı çözüm oluyor. Ben yüzde 80 ve 90 seviyelerinde iki ayrı uyarı kurmayı tercih ediyorum.

Alanı geri kazandıktan sonra aynı olayın neden tekrarlandığını bulmak gerekiyor. Uygulama loguna boyut sınırı koymak, Docker log driver ayarlarını düzenlemek ve yedek dosyalarını yaşam döngüsü kuralıyla temizlemek kalıcı çözüm sağlar. Ben disk alarmına yalnızca yüzde değil, kalan gigabayt eşiği de ekliyorum; küçük ve büyük disklerde aynı yüzde farklı aciliyet taşıyabiliyor.

Sizde diski en çok hangi klasör doldurmuştu? Özellikle Docker veya MySQL kaynaklıysa kullandığınız güvenli temizlik yöntemini paylaşır mısınız?

Cevaplar

0 yanıt
Bu konuda henüz cevap yok.