# Disk dolu: alanı neyin doldurduğunu bulun ve güvenle boşaltın

> Linux'ta No space left on device ve Windows Server'da dolu sürücü sorununu çözün: büyük klasörleri bulun, kayıtları, önbellekleri ve eski paketleri temizleyin.

Zorluk: Başlangıç\
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13, Windows Server 2022, Windows Server 2025

Bir disk dolduğunda veritabanları yazmayı bırakır, web siteleri hata verir, posta kuyrukları durur ve bazen giriş bile yapamazsınız. Bu rehber, alanı neyin kullandığını bulur ve Linux ile Windows Server'da güvenle boşaltır.

## Başlamadan önce

- SSH ile ya da hizmet sayfanızda görünüyorsa web konsoluyla giriş yapın; tamamen dolu bir disk SSH girişlerini bozabilir.
- Tanımadığınız dosyaları silmeyin. Önce bakın, sonra emin olduklarınızı kaldırın.

## 1. adım: Diskin dolu olduğunu doğrulayın

```bash
df -h
df -i
```

`df -h` her dosya sisteminin alanını gösterir; `/` veya bir veri bağlama noktasında 100'e yakın `Use%` değerine bakın. `df -i` **inode**'ları gösterir: alan boşken `IUse%` 100 ise çok fazla küçük dosyanız vardır.

## 2. adım: Büyük klasörleri bulun

Kökten başlayın ve her seferinde en büyük klasöre inin. `-x` tek bir dosya sisteminde kalır:

```bash
sudo du -xh --max-depth=1 / 2>/dev/null | sort -h | tail -n 15
sudo du -xh --max-depth=1 /var 2>/dev/null | sort -h | tail -n 15
```

`ncdu` aynısını etkileşimli yapar (`sudo apt install ncdu`, ardından `sudo ncdu -x /`). Tek tek büyük dosyaları listelemek için:

```bash
sudo find / -xdev -type f -size +500M -exec ls -lh {} + 2>/dev/null
```

**Doğrulama:** alanı hangi klasörün tuttuğunu artık biliyorsunuz. Olağan şüpheliler aşağıdadır.

## 3. adım: Alanı güvenle boşaltın

### systemd günlüğü

```bash
journalctl --disk-usage
sudo journalctl --vacuum-size=200M
```

Kalıcı olarak küçük tutmak için `/etc/systemd/journald.conf` içinde `SystemMaxUse=200M` ayarlayın ve `sudo systemctl restart systemd-journald` çalıştırın.

### Eski kayıtlar

`/var/log` içindeki döndürülmüş kayıtlar (sonu `.1`, `.gz` ile bitenler) silinebilir. Bir servisin yazdığı etkin bir kaydı silmeyin; bunun yerine içini boşaltın:

```bash
sudo truncate -s 0 /var/log/nginx/access.log
```

Ardından `logrotate`'in bu kaydı döndürdüğünü kontrol edin ki yeniden büyümesin.

### Paket önbellekleri ve eski çekirdekler

```bash
sudo apt clean
sudo apt autoremove --purge
```

`apt autoremove`, eski çekirdekler dahil artık gerekmeyen paketleri kaldırır. Onaylamadan önce gösterdiği listeyi okuyun.

### Docker

İmajlar, durdurulmuş container'lar ve derleme önbellekleri gigabaytlarca yer kaplayabilir:

```bash
docker system df
docker system prune
```

`docker system prune` durdurulmuş container'ları, kullanılmayan ağları, sarkan imajları ve derleme önbelleğini kaldırır. Silmeden önce sorar; hiçbir birimin ihtiyacınız olan veriyi tutmadığından emin değilseniz `--volumes` eklemeyin.

### Sunucudaki yedekler ve dökümler

Eski yedek arşivleri ve veritabanı dökümleri sık bir nedendir. Onları sunucunun dışına taşıyın, sonra yerelde silin. Aynı diskte tutulan yedekler zaten sizi korumaz; bkz. [yedekleme stratejisi](/guides/backup-strategy-3-2-1).

### Çok fazla küçük dosya (inode)

En çok dosya içeren klasörü bulun:

```bash
sudo find / -xdev -type f 2>/dev/null | cut -d/ -f2-3 | sort | uniq -c | sort -n | tail -n 10
```

PHP oturumları, önbellek klasörleri ve posta kuyrukları tipik örneklerdir. Varsa uygulamanın kendi aracıyla temizleyin.

## 4. adım: Silindi ama alan geri gelmedi

Bir süreç silinen dosyayı hâlâ açık tutuyor:

```bash
sudo lsof +L1
```

Çıktı süreci gösterir. Alanı serbest bırakmak için o servisi yeniden başlatın (örneğin `sudo systemctl restart nginx`).

## Windows Server

- Boş alanı PowerShell'de `Get-Volume` ile ya da Dosya Gezgini'nde kontrol edin.
- Büyük klasörleri Dosya Gezgini aramasıyla (`size:>1GB`) veya bir disk kullanım aracıyla bulun.
- Kullanılabildiği yerlerde **Disk Cleanup**'ı (`cleanmgr`) çalıştırın ve **Clean up system files**'ı seçin.
- Güncellemelerden sonra bileşen deposunu (WinSxS) temizleyin:

```powershell
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
```

- `C:\inetpub\logs\LogFiles` altındaki IIS kayıtlarını ve eski SQL Server yedeklerini kontrol edin.

## Bir dahaki sefere önleyin

- Kayıt döndürmeyi ve günlük sınırlarını açık tutun.
- Yedekleri başka bir sistemde saklayın.
- Disk kullanımı yüzde 80 civarına geldiğinde sizi uyaran bir izleme kurun.
- Sunucunun gerçekten daha fazla yere ihtiyacı varsa daha büyük bir plana geçin ve dosya sistemini genişletin: bkz. [hizmeti yükseltin veya düşürün](/guides/upgrade-or-downgrade-service).

## Ne zaman destek bildirimi açmalı?

Sunucu disk dolu olduğu için açılamıyorsa veya `df` hata veriyorsa, alabiliyorsanız `df -h` ve `df -i` çıktılarıyla birlikte sunucuyu seçerek bir destek bildirimi açın.

## Sonraki adımlar

- Diğer kaynak sorunları: [yüksek CPU veya bellek kullanımı](/guides/high-cpu-memory).
- Diski büyütün: [hizmeti yükseltin veya düşürün](/guides/upgrade-or-downgrade-service).

## Sık sorulan sorular

### df boş alan gösteriyor ama yine de No space left on device alıyorum. Neden?

Dosya sisteminin inode'ları, yani dosyaları izleyen kayıtları tükenmiştir; genellikle oturum veya önbellek dosyaları gibi milyonlarca küçük dosya yüzünden. df -i ile kontrol edin ve biriken küçük dosyaları silin.

### Büyük bir dosyayı sildim ama alan geri gelmedi. Neden?

Çalışan bir süreç dosyayı hâlâ açık tutuyor; alan ancak süreç onu kapattığında serbest kalır. Bu tür dosyaları lsof +L1 ile bulun ve onları tutan süreci yeniden başlatın.

### /var/log içindeki dosyaları silmek güvenli mi?

Sonu .gz veya .1 ile biten eski döndürülmüş kayıtları silmek güvenlidir. Etkin kayıt dosyalarını silmeyin; bunun yerine içlerini boşaltın veya systemd günlüğünü journalctl --vacuum-size ile sınırlayın.

### Diskimi büyütebilir miyim?

Evet; daha büyük diskli bir plana geçerek veya planınız sunuyorsa disk alanı ekleyerek. Yükseltmeden sonra sunucunun yeni alanı kullanabilmesi için bölümü ve dosya sistemini genişletin.

### Bir dahaki sefere bunu nasıl önlerim?

Kayıt döndürmeyi ve günlük sınırlarını açık tutun, yedekleri sunucunun dışına taşıyın, eski sürümleri ve önbellekleri düzenli temizleyin ve disk kullanımını bir izleme uyarısıyla takip edin.

---

Kaynak: <https://hyperdc.com/tr/guides/troubleshooting/disk-full>\
Son güncelleme: 2026-10-09
