Son doğrulama: Eylül 2026 · Ubuntu 24.04 test sunucusunda denendi
Hızlı çözüm
Linux büyük dosya bulma işlemi için en hızlı yol find komutuna boyut filtresi eklemektir; klasör toplamı değil, tek tek dosyaların kendisi aranır.
find /var -xdev -type f -size +50M -exec ls -lh {} \; 2>/dev/null ile 50 MB üzeri dosyaları listeleyin./ yerine /var, /usr, /home gibi belirli dizinleri hedefleyin.lsof | grep deleted ile hâlâ açık tutan süreci bulun.| Panel | Yok — VPS/VDS yönetimsizdir; arama işletim sistemi üzerinden komutla yapılır |
|---|---|
| Sistem | Ubuntu 22.04/24.04, Debian 12, AlmaLinux 8/9, Rocky 9 (coreutils find, du, lsof her dağıtımda yerleşik ya da paket yöneticisiyle kurulur) |
| Yetki | Sunucunuzun herhangi bir kullanıcısı; sistem dizinlerinde sudo gerekebilir |
| Narhost ürünü | VPS Sunucu, VDS Sunucu |
Başlamadan önce
df -h ile önceden bilin; aramayı o bölüme bağlı dizinlerle sınırlayın.find‘ı kök / dizininde çalıştırmayın; tüm dosya sistemini tarar ve canlı sunucuda uzun sürer, /var ya da /usr gibi belirli dizinler yeterlidir.Disk doluluk uyarısı geldiğinde iki farklı soru vardır: “hangi klasör” ve “hangi dosya”. Klasör bazlı toplamı du ile ölçme zaten ayrı bir kartta anlatılıyor; linux büyük dosya bulma ise bir adım ötesine geçip find ile tek tek dosyaları boyut filtresine göre listeler. Bir klasör büyükse ama içindeki tek dosya küçükse du yeterlidir; belirli bir dosya türünü (log, döküm, yedek) ararken find daha hızlı sonuç verir.
İkinci bir tuzak, silinmiş ama hâlâ yer kaplayan dosyalardır: bir dosya silindiğinde onu açık tutan bir servis kapanmadan disk alanı boşalmaz. Bu kart bu iki konuyu birlikte ele alır; genel bölüm doluluğu ve inode kontrolü için disk kullanımı denetleme kartına bakın.

-xdev aramayı aynı dosya sistemiyle sınırlar, bağlı başka bölümlere geçmez.
find /var -xdev -type f -size +5M -exec ls -lh {} \; 2>/dev/null
Beklenen sonuç (test sunucusunda alınan gerçek çıktı, kısaltılmış): en büyük dosyalar apt paket önbelleğinde çıktı: 55M /var/cache/apt/pkgcache.bin, birkaç adet 15-25M arası .deb paket dosyası ve 16M /var/cache/fwupd/metadata.xmlb.
find /usr -xdev -type f -size +20M -exec ls -lh {} \; 2>/dev/null
Beklenen sonuç (test sunucusunda alınan gerçek çıktı, kısaltılmış): en büyük dosyalar paylaşılan kütüphaneler ve çalıştırılabilir dosyalardı, örnek: 118M /usr/lib/llvm-18/lib/libLLVM.so.1, 107M /usr/bin/dockerd.
find /var/log -xdev -type f -name "*.gz" -size +10M 2>/dev/null
Beklenen sonuç: test sunucusunda 10 MB üzeri sıkıştırılmış log yoktu (boş çıktı); varsa dosya yolu tek satırda listelenir, önce içeriğine bakıp sonra silinir.
du ile de bulabilirsiniz.find‘a alternatif, aynı sonuca farklı bir yoldan ulaşır.
du -ah /var/cache 2>/dev/null | sort -rh | head -5
Beklenen sonuç: dizin altındaki dosya ve klasörler boyuta göre büyükten küçüğe sıralanır; -a bayrağı dosyaları da (yalnızca klasörleri değil) listeye katar.
lsof açık dosya tablosunu listeler.
lsof 2>/dev/null | grep deleted
Beklenen sonuç (test sunucusunda alınan gerçek çıktı): ovsdb-server 1093 root 6u REG 252,0 330 263802 /tmp/#263802 (deleted) — dosya silinmiş ama ovsdb-server süreci hâlâ açık tutuyor; süreç adı ve PID buradan okunur.
Dikkat
Büyük bir dosyayı sildiğiniz hâlde disk dolu kalıyorsa, ilgili servisi (“(deleted)” satırındaki komut adı) yeniden başlatmadan alan boşalmaz. Servisi durdurmadan önce hangi süreç olduğunu lsof çıktısından doğrulayın; rastgele bir servisi durdurmayın.
Sonuç
find ile listelenen büyük dosyalar tanıdık ve gerekliyse (güncel yedek, aktif log) dokunmayın; gereksizse silin ve df -h ile boşalan alanı doğrulayın. Alan boşalmadıysa lsof | grep deleted‘e tekrar bakın.
/ dizininde çalıştırmayın; /var, /usr, /home gibi belirli dizinlerle sınırlayın.df -h/df -i ayrımını anlatır.Narhost desteği
Talebe şunları ekleyin: sunucunuzun IP adresi, aradığınız dizin, find komutunun tam çıktısı ve varsa lsof | grep deleted satırı.
Sonraki adımlar
Çalıştırabilirsiniz ama önerilmez; find / tüm dosya sistemini (bağlı ağ sürücüleri dahil) tarar ve canlı bir sunucuda uzun sürüp G/Ç yükü oluşturur. Aramayı /var, /usr, /home gibi ihtiyacınız olan dizinle sınırlayın.
İkisi de doğrudur, farklı düzeyde çalışır: find -size tek dosyaları filtreler, du bir dizinin toplamını verir. Tek bir büyük dosya arıyorsanız find, bir klasörün genel ağırlığını öğrenmek istiyorsanız du daha uygundur.
Dosyayı açık tutan bir servis (log yazan bir uygulama, veritabanı süreci) kapanmadan Linux o alanı geri vermez. lsof | grep deleted ile hangi sürecin dosyayı hâlâ tuttuğunu görüp servisi yeniden başlatın.
Bu makale sorununuzu çözdü mü?
Geri bildiriminiz için teşekkürler.
Çözemediniz mi?
Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.