WordPress, yazılım ve IT üzerine notlar
Anasayfa » Sunucu & Linux » Linux sunucuda disk doldu: Panik yapmadan yer açmanın yolu

Linux sunucuda disk doldu: Panik yapmadan yer açmanın yolu

İçindekiler
  1. 1. Hangi bölüm dolu?
  2. 2. Yer kaplayan klasörü bulun
  3. 3. Genellikle suçlu olanlar
  4. 4. Güvenli temizlik
  5. 5. "Sildim ama yer açılmadı" durumu
  6. 6. Bir daha olmaması için

Disk dolduğunda belirtiler çoğu zaman ilgisiz görünür. MySQL açılmaz, PHP oturum dosyası yazamaz, web sitesi beyaz sayfa verir, SSH ile girerken bile -bash: cannot create temp file uyarısı çıkar. Bu tür bir anda yapılacak en kötü şey, rastgele klasör silmektir. Önce ölçün, sonra silin.

1. Hangi bölüm dolu?

df -h

Use% sütununda %100 görünen bölümü bulun. Kök (/) mu, yoksa ayrı bağlanmış /var ya da /home mu? Bu, nereye bakacağınızı belirler.

Bir de şunu çalıştırın:

df -i

Bu komut inode kullanımını gösterir. Disk alanı boş göründüğü hâlde "yer yok" hatası alıyorsanız sebep inode tükenmesidir. Genelde milyonlarca küçük dosya vardır: PHP oturum dosyaları, önbellek parçaları ya da kuyrukta kalmış e-postalar.

2. Yer kaplayan klasörü bulun

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

-x parametresi taramayı aynı dosya sisteminde tutar, bağlı diskler ve /proc gibi sanal klasörler hesaba girmez. En büyük klasörü bulduktan sonra aynı komutu o klasör için tekrarlayın. Üç dört adımda suçluya ulaşırsınız.

Tek tek büyük dosyaları görmek isterseniz:

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

3. Genellikle suçlu olanlar

Yıllar içinde gördüğüm vakaların büyük kısmı şu listeden çıkıyor:

  • Log dosyaları: /var/log altında dönmeyen (rotate edilmeyen) bir günlük. Özellikle hata veren bir uygulamanın her saniye satır yazdığı durumlar.
  • systemd journal: Sınırı ayarlanmamış journal birkaç gigabayta çıkabilir.
  • Eski yedekler: Bir betiğin her gece aynı diske aldığı ve hiç silmediği tar.gz dosyaları.
  • Paket önbelleği: dnf ya da apt önbelleği.
  • MySQL binary logları: binlog açık ama süre sınırı yok.
  • Silinmiş ama açık dosyalar: Bunu aşağıda ayrıca anlatıyorum.

4. Güvenli temizlik

Journal'ı son 7 güne indirmek için:

journalctl --vacuum-time=7d

Paket önbelleği için:

dnf clean all      # RHEL, AlmaLinux, Rocky
apt-get clean      # Debian, Ubuntu

Büyüyen bir log dosyasını silmeyin, boşaltın:

truncate -s 0 /var/log/uygulama/hata.log

Fark şu: Dosyayı rm ile silerseniz, ona yazan süreç dosyayı açık tuttuğu için alan geri gelmez. truncate ise dosyayı yerinde sıfırlar.

5. "Sildim ama yer açılmadı" durumu

Bir dosyayı sildiniz ama df hâlâ dolu gösteriyorsa, o dosyayı bir süreç hâlâ açık tutuyordur. Şöyle bulursunuz:

lsof +L1 2>/dev/null | head

Listede (deleted) yazan satırlar görürsünüz. İlgili servisi yeniden başlattığınızda alan geri gelir. Örneğin systemctl restart httpd.

6. Bir daha olmaması için

  • /etc/systemd/journald.conf içinde SystemMaxUse=500M gibi bir sınır koyun.
  • Kendi uygulama loglarınız için logrotate kuralı yazın.
  • Yedekleri aynı diske almayın. Mecbursanız eski yedekleri silen bir satır ekleyin: find /yedek -name "*.tar.gz" -mtime +7 -delete
  • Disk %85'i geçince size e-posta atan basit bir kontrol kurun. Gece yarısı sürpriz yaşamamanın en ucuz yolu budur.

Disk dolması bir arıza değil, bir uyarıdır: Sunucuda bir şey kontrolsüz büyüyor demektir. Yer açmak sorunu bugün çözer; büyüyen şeyi bulmak ise bir daha yaşamamanızı sağlar.

Tezcan Kabakçı
Hosting teknik destek uzmanı ve WordPress uzmanı. 2024'ten beri bir hosting şirketinde teknik destek bölümünde çalışıyor; WordPress, DNS ve e-posta sorunlarını her gün yakından görüyor. YouTube kanalı.
Bu yazı 4 Ekim 2026 tarihinde Sunucu & Linux kategorisinde yayınlandı.
Yeni yazılar e-postanıza gelsin

Ayda birkaç e-posta; istediğiniz an tek tıkla ayrılabilirsiniz.

Videolu anlatımlar YouTube'da
Sunucu ve WordPress sorunlarını kısa videolarla anlattığım kanala abone olabilirsiniz. ▶ Kanala abone ol

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

Yorumlar onaylandıktan sonra yayımlanır. Bağlantı içeren yorumlar spam olarak değerlendirilebilir.