Disk doldu, sunucumda nasıl yer açarım?
Disk dolunca web siteniz hata verir, veritabanı yazamaz, SSH ile giriş bile zorlaşabilir. Önce neyin yer kapladığını bulmak gerekir; körlemesine silmek tehlikelidir. Aşağıdaki sırayı izleyin.
1. Durumu görün (Linux)
df -h
df -i
df -h bölüm başına doluluğu, df -i inode doluluğunu gösterir. Alan boş görünüp "No space left on device" alıyorsanız inode bitmiştir: inode doldu.
2. Büyük klasörleri bulun
sudo du -xh / --max-depth=1 2>/dev/null | sort -rh | head -12
Komut kök dizindeki klasörleri büyüklüğüne göre sıralar. En büyüğüne girin (sudo du -xh /var --max-depth=1 | sort -rh | head) ve aşağı doğru ilerleyin. Etkileşimli bir araç isterseniz: sudo apt install ncdu ve sudo ncdu / (klasörlerin içinde ok tuşlarıyla gezinirsiniz, q çıkar).
3. Sık görülen büyük tüketiciler ve temizliği
- Günlük dosyaları (
/var/log): Kontrolsüz büyüyebilir.sudo journalctl --vacuum-size=200Mile sistem günlüğünü küçültün. Kalıcı çözüm: logrotate. - apt önbelleği:
sudo apt cleanvesudo apt autoremove --purgeindirilmiş paketleri ve kullanılmayan bağımlılıkları (eski çekirdekler dahil) siler. - Docker:
docker system dfile bakın;docker system prunekullanılmayan konteyner ve imajları siler (veri volume'larını silmez ama dikkatle çalıştırın;-abayrağı kullanılmayan tüm imajları kaldırır): Docker. - Uygulama verileri: Yüklenen dosyalar, yedek arşivleri (
.zip,.tar.gz), eski veritabanı dökümleri. Yedekleri sunucu içinde tutmayın; dışarı alın: rsync ile yedek. - Veritabanı: İkili günlükler (MySQL binlog) ve büyük tablolar. Binlog'u kullanmıyorsanız süresini kısaltın.
- Silinmiş ama açık dosyalar: Bir süreç silinmiş büyük bir dosyayı hâlâ açık tutuyorsa alan serbest kalmaz:
sudo lsof +L1bunları listeler; ilgili süreci yeniden başlatın.
Windows sunucuda
- Eşzamanlı Disk Temizleme (
cleanmgr) ve Ayarlar > Sistem > Depolama bölümü, neyin yer kapladığını gösterir. C:\Windows\Tempve kullanıcı geçici klasörlerindeki eski dosyalar.- Windows Update kalıntıları: Disk Temizleme'de "Sistem dosyalarını temizle" ile Windows Update Temizleme.
- Kullanılmayan programlar, büyük günlük ve döküm dosyaları (
C:\Windows\MEMORY.DMP). - Sistem sürücüsünde sanal bellek dosyası (
pagefile.sys) yer kaplar; bunu bilerek boş alan bırakın.
Hiçbir şey silmeden önce
Emin olmadığınız bir klasörü silmeyin; /var/lib altındaki veritabanı dosyaları ya da sistem klasörleri tek hamlede sunucuyu bozabilir. Büyük bir temizlik öncesi anlık görüntü alın.
Kalıcı çözüm
Gerçekten ihtiyacınız olan veri diski dolduruyorsa disk alanını artırın: dosya sistemini genişletme, ek disk veya paketi büyütme. Disk tamamen dolduysa ve sunucu açılmıyorsa: Kurtarma Modu ile yer açabilirsiniz.
Sık sorulanlar
rm ile sildim ama alan geri gelmedi.
Dosya silinmiş ama bir süreç hâlâ açık tutuyordur. sudo lsof +L1 ile bulup süreci yeniden başlatın. Ya da dosyanın kendisi başka bir bölümdeydi.
Disk /dev/mapper/... %100 diyor.
Bu LVM mantıksal birimidir; aynı yöntemlerle temizlenir. Birim büyütülmüşse dosya sistemini genişletmeniz gerekir.
Hosting paketinde disk dolarsa ne olur?
Yeni dosya yükleyemez ve mail alamayabilirsiniz. Kullanımı panelden görüp yer açın ya da paketi yükseltin: hosting kotası doldu.
İlgili makaleler
- "No space left on device" ama disk boş görünüyor: inode dolmuş olabilir
- Linux'ta logrotate ile günlük dosyalarının büyümesini önleme
- Disk büyütüldü ama alan görünmüyor: dosya sistemini genişletme
Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.
Geri bildiriminiz için teşekkürler!