Linux Sunucuda Büyük Dosyalar Nasıl Bulunur? Disk Alanını Dolduran Dosyaları Bulma

sametgness · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

Linux sunucuda büyük dosyaları bulmak için en kullanışlı yöntemlerden biri find komutudur. Örneğin aynı dosya sistemi içerisinde 1 GB'den büyük dosyaları aramak için:


sudo find / -xdev -type f -size +1G -print 2>/dev/null

kullanılabilir.

Ancak büyük bir dosya bulmanız onun gereksiz olduğu anlamına gelmez. Veritabanı dosyaları, swap dosyaları, uygulama verileri ve sistem dosyaları da büyük olabilir. Dosyanın ne işe yaradığını doğrulamadan silmeyin.

Önce diskin gerçekten dolu olup olmadığını kontrol edin

Aramaya başlamadan önce:

df -h

komutunu çalıştırın.

Ana dosya sistemini kontrol etmek için:

df -h /

kullanabilirsiniz.

Örneğin disk kullanımı %95 seviyesindeyse hangi dizin veya dosyaların alanı tükettiğini araştırmak gerekir.

1 GB'den büyük dosyalar nasıl bulunur?

Temel komut:

sudo find / -xdev -type f -size +1G -print 2>/dev/null

Burada:

/ → Aramanın başlayacağı dizin

-xdev → Başka bağlı dosya sistemlerine geçilmesini önler

-type f → Yalnızca normal dosyaları arar

-size +1G → 1 GB'den büyük dosyaları bulur

2>/dev/null → Yetki gibi nedenlerle oluşabilecek hata mesajlarını ekrandan gizler

Bu komut dosyaları silmez; yalnızca bulur.

500 MB'den büyük dosyalar nasıl bulunur?

Daha küçük dosyaları da araştırmak için:

sudo find / -xdev -type f -size +500M -print 2>/dev/null

kullanabilirsiniz.

Benzer şekilde 100 MB'den büyük dosyalar için:

sudo find / -xdev -type f -size +100M -print 2>/dev/null

kullanılabilir.

Ancak sınırı çok düşük tutarsanız binlerce sonuç çıkabilir.

Önce büyük klasörleri bulmak daha hızlı olabilir

Bütün sunucuda tek tek dosya aramak yerine önce hangi ana dizinin büyük olduğunu belirlemek daha verimli olabilir.

Örneğin:

sudo du -xhd1 / 2>/dev/null | sort -hr

komutunu çalıştırın.

Sonuçlarda /var büyük görünüyorsa:

sudo du -xhd1 /var 2>/dev/null | sort -hr

ile devam edin.

Ardından örneğin /var/log büyükse:

sudo du -xhd1 /var/log 2>/dev/null | sort -hr

şeklinde alanı tüketen noktaya kadar ilerleyebilirsiniz.

du ile find arasındaki fark nedir?

du, dizinlerin ve dosyaların kapladığı alanı incelemek için kullanışlıdır.

find ise belirlediğiniz koşullara uyan dosyaları bulur.

Disk problemi araştırılırken genellikle:

df → du → find

sırası oldukça etkilidir.

Önce diskin doluluk oranı bulunur, ardından büyük dizin tespit edilir ve son olarak o dizindeki büyük dosyalar araştırılır.

Belirli bir klasörde büyük dosyalar nasıl bulunur?

Örneğin yalnızca /var içerisinde 500 MB'den büyük dosyaları aramak için:

sudo find /var -type f -size +500M -print 2>/dev/null

kullanabilirsiniz.

Web projeniz:

/var/www

altındaysa:

sudo find /var/www -type f -size +100M -print 2>/dev/null

ile büyük proje dosyalarını araştırabilirsiniz.

Bu yöntem bütün sistemi taramaktan daha hızlı olabilir.

Log dosyalarını kontrol edin

Sunucularda büyük dosyaların önemli kaynaklarından biri loglardır.

Öncelikle:

du -sh /var/log

kullanabilirsiniz.

Alt dizinler için:

sudo du -h --max-depth=1 /var/log | sort -hr

çalıştırılabilir.

Burada:

- Nginx logları
- Sistem logları
- Authentication logları
- Uygulama logları

yüksek alan kullanabilir.

Ancak aktif log dosyalarını ne olduğunu anlamadan doğrudan silmeyin.

Nginx logları nasıl kontrol edilir?

Nginx logları çoğunlukla:

/var/log/nginx

altındadır.

Kontrol:

du -sh /var/log/nginx

Dosyaları boyutlarıyla görmek için:

ls -lh /var/log/nginx

kullanabilirsiniz.

access.log veya error.log çok büyükse bunun nedeni yoğun trafik veya sürekli tekrarlanan bir hata olabilir.

Yalnızca logu temizlemek yerine büyümenin nedenini de araştırın.

PM2 logları büyük olabilir mi?

Evet.

Node.js uygulamaları PM2 ile uzun süre çalışıyorsa log dosyaları ciddi boyutlara ulaşabilir.

PM2 log dizini kullanılan hesaba göre genellikle:

~/.pm2/logs

altında bulunur.

Kontrol:

du -sh ~/.pm2/logs

Dosyalar için:

ls -lh ~/.pm2/logs

kullanılabilir.

PM2 loglarını kontrollü şekilde boşaltmak için:

pm2 flush

kullanılabilir.

Ancak hata sürekli devam ediyorsa loglar yeniden büyür. Bu durumda uygulamadaki asıl hata düzeltilmelidir.

Eski yedek dosyalarını kontrol edin

Sunucularda unutulan:

- .tar
- .tar.gz
- .zip
- .sql
- .dump

dosyaları ciddi alan kullanabilir.

Özellikle günlük veya haftalık otomatik backup alıyorsanız eski yedeklerin silinip silinmediğini kontrol edin.

Örneğin proje yedeklerinin bulunduğu klasörde:

du -sh /root/backups

ve:

ls -lh /root/backups

kullanılabilir.

Yedek dosyasını silmeden önce çalışan ve mümkünse sunucu dışında bulunan başka bir yedeğiniz olduğundan emin olun.

PostgreSQL dump dosyaları unutulabilir

Örneğin:

pg_dump

ile düzenli yedek alıyorsanız .sql veya özel format dump dosyaları zaman içerisinde birikebilir.

Bunlar aktif PostgreSQL veri dosyalarından farklıdır.

Eski dump dosyalarının gerekip gerekmediğini değerlendirip uygun bir yedek saklama politikası oluşturabilirsiniz.

Ancak PostgreSQL'in kendi veri dizinindeki dosyaları manuel olarak silmeyin.

Veritabanı dosyalarını neden silmemelisiniz?

find sonucunda çok büyük bir dosya gördüğünüzde dosyanın:

/var/lib/postgresql

veya başka bir veritabanı veri dizininde olduğunu fark edebilirsiniz.

Bu dosyaları:

rm

ile manuel silmek veritabanının bozulmasına ve veri kaybına yol açabilir.

Veritabanı çok fazla alan kullanıyorsa sorun veritabanının kendi araçlarıyla araştırılmalıdır.

Silinmiş dosya neden hâlâ alan kullanıyor?

Linux'ta çalışan bir process bir dosyayı açık tutarken dosya silinirse dosya dizin listesinden kaybolabilir ancak process dosya tanıtıcısını açık tuttuğu sürece disk alanı hemen serbest kalmayabilir.

Bu durumu kontrol etmek için:

sudo lsof +L1

kullanılabilir.

Burada büyük bir dosya görüyorsanız hangi process'in dosyayı açık tuttuğunu belirleyin.

Process'i doğrudan öldürmek yerine ilgili servisin kontrollü şekilde yeniden başlatılması gerekip gerekmediğini değerlendirin.

df ve du neden farklı sonuç gösterebilir?

Bazen:

df -h

diskin çok dolu olduğunu gösterirken du ile aynı miktarda dosya bulunamaz.

Bunun olası nedenlerinden biri silinmiş ancak çalışan process tarafından açık tutulan dosyalardır.

Bunun yanında mount yapıları, ayrılmış dosya sistemi alanları ve diğer dosya sistemi özellikleri de farklılıklara neden olabilir.

Bu nedenle ciddi fark varsa:

lsof +L1

kontrolü faydalıdır.

Çok fazla küçük dosya da diski doldurabilir

Disk probleminin nedeni her zaman birkaç büyük dosya değildir.

Milyonlarca küçük:

- Cache
- Session
- Thumbnail
- Geçici dosya
- Log parçası

inode'ları tüketebilir.

Kontrol etmek için:

df -i

kullanabilirsiniz.

Disk alanı boş görünmesine rağmen yeni dosya oluşturulamıyorsa inode kullanımı özellikle kontrol edilmelidir.

Docker kullanıyorsanız ayrıca kontrol edin

Docker kullanılan sunucularda büyük alan:

- Image
- Container
- Volume
- Build cache

tarafından kullanılabilir.

Genel kullanım için:

docker system df

kullanabilirsiniz.

Ancak Docker volume'ları içerisinde kalıcı veriler bulunabileceği için ne olduğunu bilmeden temizleme komutları çalıştırmayın.

Dosya boyutunu kontrol etmek için ls kullanılabilir

Belirli bir dosyanın boyutunu görmek için:

ls -lh /dosya/yolu

kullanılabilir.

Dizindeki dosyaları boyutlarıyla görmek için:

ls -lh /klasor

komutu faydalıdır.

Ancak klasörlerin gerçek toplam disk kullanımını değerlendirmek için du daha uygundur.

Büyük dosya bulunca ne yapılmalı?

Dosyanın yolunu gördükten sonra hemen silmek yerine şu soruları cevaplayın:

1. Dosyayı hangi uygulama oluşturdu?
2. Şu anda kullanılıyor mu?
3. Log dosyası mı?
4. Yedek mi?
5. Veritabanına mı ait?
6. Kullanıcı tarafından yüklenen bir dosya mı?
7. Silinirse uygulama bozulur mu?
8. Başka yerde yedeği var mı?

Dosyanın gereksiz olduğundan emin olduktan sonra uygun temizleme yöntemi kullanılmalıdır.

Disk alanını dolduran dosyaları bulmak için hızlı sıra

İlk olarak:

df -h

Ardından:

sudo du -xhd1 / 2>/dev/null | sort -hr

Büyük klasörü bulduktan sonra o klasörün içine ilerleyin.

Örneğin:

sudo du -xhd1 /var 2>/dev/null | sort -hr

Daha sonra gerekirse:

sudo find /var -type f -size +500M -print 2>/dev/null

kullanın.

Ek olarak:

df -i

ve:

sudo lsof +L1

kontrolleri yapılabilir.

Sık yapılan hatalar

Büyük dosya araştırırken şu hatalardan kaçının:

- Büyük gördüğünüz her dosyayı silmek
- Veritabanı dosyalarını manuel silmek
- Aktif logları kontrolsüz kaldırmak
- Eski yedeği silmeden önce yeni yedeği doğrulamamak
- Docker volume'larını rastgele temizlemek
- Yalnızca büyük dosyalara bakıp inode kullanımını unutmak
- df ile du arasındaki büyük farkı araştırmamak
- Disk doluluğunun asıl nedenini çözmeden yalnızca geçici temizlik yapmak

Özetle, Linux sunucuda büyük dosyaları bulmak için df, du ve find birlikte kullanılabilir. Önce hangi dosya sisteminin dolduğunu, ardından hangi klasörün büyüdüğünü ve son olarak hangi dosyaların alan tükettiğini belirlemek en güvenli yöntemdir.

Büyük bir dosya bulduğunuzda temel kural değişmez: Dosyanın ne olduğunu bilmeden silmeyin. Özellikle üretim sunucularında birkaç GB alan kazanmak için yapılan yanlış bir silme işlemi tüm uygulamanın veya veritabanının kaybedilmesine neden olabilir.