format_list_bulletedBu İçerikte Bahsedilen Konular
- arrow_rightSunucularda "Out of Disk Space" Hatalarının Hızlı Çözümü
- arrow_rightDisk Alanı Hatası Nedir ve Neden Olur?
- arrow_rightDisk Alanı Sorunlarını Teşhis Etme Yöntemleri
- arrow_rightDisk Kullanımını Kontrol Etme
- arrow_rightHangi Klasörlerin En Fazla Alan Kullandığını Bulma
- arrow_rightBüyük Dosyaları Tespit Etme
- arrow_rightOut of Disk Space Hatası İçin Acil Çözüm Yöntemleri
- arrow_right1. Log Dosyalarını Temizleme
- arrow_right2. Geçici Dosyaları Temizleme
- arrow_right3. Büyük Yedekleme ve Arşiv Dosyalarını Kaldırma
- arrow_right4. Docker ve Container Temizliği
- arrow_right5. E-posta Kuyruğunu Temizleme
- arrow_rightInode Tükenmesi Sorunu ve Çözümü
- arrow_rightInode Kullanımını Kontrol Etme
- arrow_rightInode Tüketen Dosyaları Bulma
- arrow_rightInode Temizleme Stratejileri
- arrow_rightUzun Vadeli Disk Alanı Yönetimi
- arrow_rightOtomatik Log Rotasyonu Yapılandırma
- arrow_rightDisk Kullanımını İzleme ve Uyarı Sistemleri
- arrow_rightDisk Alanı İzleme Araçları
- arrow_rightDisk Alanı Sorunları İçin Önleyici Tedbirler
- arrow_rightDisk Alanı Hatası Durumunda Yapılması Gerekenler: Kontrol Listesi
- arrow_rightSonuç ve Öneriler
Sunucularda "Out of Disk Space" Hatalarının Hızlı Çözümü
Sunucu yönetiminde en sık karşılaşılan hatalardan biri olan "Out of Disk Space" (Disk Alanı Dolu) sorunu, web sitelerinin erişilemez hale gelmesine, veritabanı bağlantılarının kesilmesine ve kritik iş süreçlerinin durmasına neden olabilir. Bu hata, sunucudaki depolama kapasitesinin tamamen dolması veya inode limitlerinin aşılması durumunda ortaya çıkar. Araştırmalara göre, sunucu kesintilerinin yaklaşık %15'i disk alanı sorunlarından kaynaklanmaktadır.
Bu kapsamlı rehberde, disk alanı hatalarını hızlıca nasıl tespit edeceğinizi, anında müdahale yöntemlerini ve uzun vadeli önleme stratejilerini bulabilirsiniz.
Disk Alanı Hatası Nedir ve Neden Olur?
"Out of Disk Space" hatası, sunucudaki dosya sisteminde yeni veri yazacak alan kalmadığında meydana gelir. Bu durum birkaç farklı nedenden dolayı oluşabilir:
- Log dosyalarının aşırı büyümesi: Apache, Nginx, MySQL ve sistem logları zamanla devasa boyutlara ulaşabilir
- Geçici dosya birikimi: /tmp klasörü veya oturum dosyaları dolup taşabilir
- E-posta kuyrukları: Spam veya bekleyen e-postalar disk doluluğuna yol açabilir
- Yedekleme dosyaları: Büyük yedekleme arşivleri alanı doldurabilir
- Inode tükenmesi: Çok sayıda küçük dosya inode limitini aşabilir
Bu sorunların çözümü için öncelikle disk kullanım durumunu doğru analiz etmek gerekir.
Disk Alanı Sorunlarını Teşhis Etme Yöntemleri
Disk Kullanımını Kontrol Etme
Sunucuda disk alanı sorununu teşhis etmek için aşağıdaki komutları kullanabilirsiniz:
df -h
Bu komut, tüm disk bölümlerinin kullanım yüzdesini ve mevcut boş alanı gösterir. Genellikle %90'ın üzerindeki kullanım sorun işaretidir.
df -i
Inode kullanımını kontrol etmek için bu komutu çalıştırın. Inode limiti dolmuşsa, diskte yer olmasına rağmen yeni dosya oluşturamazsınız.
Hangi Klasörlerin En Fazla Alan Kullandığını Bulma
du -sh /* 2>/dev/null | sort -rh | head -10
Bu komut, en fazla alan kullanan ilk 10 klasörü listeler. Büyük sunucularda daha detaylı analiz için sunucu optimizasyonu konusuna da göz atabilirsiniz.
du -sh /var/* 2>/dev/null | sort -rh
/var klasörü genellikle log dosyaları, veritabanları ve geçici dosyaları içerir ve disk alanı sorunlarının en sık yaşandığı bölümdür.
Büyük Dosyaları Tespit Etme
find / -type f -size +100M 2>/dev/null
100MB'den büyük dosyaları bulmak için bu komutu kullanın. Özellikle unutulmuş yedekleme dosyaları ve eski log arşivleri bu yöntemle tespit edilebilir.
Out of Disk Space Hatası İçin Acil Çözüm Yöntemleri
1. Log Dosyalarını Temizleme
Log dosyaları disk alanının en büyük tüketicisi olabilir. Acil durumda şu adımları izleyin:
# Log dosyalarını sıfırlama (içeriği siler, dosyayı korur) truncate -s 0 /var/log/syslog truncate -s 0 /var/log/nginx/error.log truncate -s 0 /var/log/apache2/error.log # Veya logrotate kullanarak eski logları arşivleme logrotate -f /etc/logrotate.conf
Bu işlem, anında disk alanı boşaltır ancak log kaydını kaybedersiniz. Uzun vadeli çözüm için log yönetimi stratejileri belirlemenizi öneririz.
2. Geçici Dosyaları Temizleme
# Geçici dosyaları temizleme rm -rf /tmp/* rm -rf /var/tmp/* # Apt önbelleğini temizleme (Debian/Ubuntu) apt-get clean apt-get autoclean # Yummy önbelleğini temizleme (CentOS/RHEL) yum clean all
Geçici dosyalar genellikle güvenli bir şekilde silinebilir ve birkaç GB'a kadar alan boşaltabilir.
3. Büyük Yedekleme ve Arşiv Dosyalarını Kaldırma
# Eski yedekleri listeleme ls -lh /backup/ # Belirli bir tarihten eski yedekleri silme find /backup/ -type f -mtime +30 -delete
Yedekleme dosyaları genellikle en fazla alan kaplayan öğelerdir. Otomatik yedekleme sistemleri kurarak bu süreci yönetilebilir hale getirebilirsiniz.
4. Docker ve Container Temizliği
Eğer sunucunuzda Docker kullanıyorsanız, kullanılmayan container ve image'lar önemli miktarda alan kaplayabilir:
# Kullanılmayan container'ları temizleme docker container prune -f # Kullanılmayan image'ları temizleme docker image prune -a -f # Build önbelleğini temizleme docker builder prune -f
Docker yönetimi hakkında daha fazla bilgi için Docker Swarm vs Kubernetes karşılaştırma rehberimize göz atabilirsiniz.
5. E-posta Kuyruğunu Temizleme
# Postfix kuyruğunu kontrol etme mailq # Tüm kuyruğu temizleme postsuper -d ALL # Deferred kuyruğunu temizleme postsuper -d ALL deferred
Spam e-postalar veya hatalı yapılandırılmış e-posta sunucuları disk alanını hızla doldurabilir.
Inode Tükenmesi Sorunu ve Çözümü
Diskte yer olmasına rağmen "No space left on device" hatası alıyorsanız, muhtemelen inode limitiniz dolmuştur. Inode, her dosya ve klasör için sistemde saklanan bir veri yapısıdır.
Inode Kullanımını Kontrol Etme
df -i
Çıktıda %100'e yakın inode kullanımı görüyorsanız, sorun disk alanı değil inode sayısıdır.
Inode Tüketen Dosyaları Bulma
# En fazla dosya içeren klasörleri bulma for i in /*; do echo $i; find $i -type f 2>/dev/null | wc -l; done | sort -k2 -rn | head -10
Bu komut, en çok dosya içeren klasörleri tespit eder. Genellikle /var/cache, /tmp veya oturum klasörleri sorunludur.
Inode Temizleme Stratejileri
# Küçük dosyaları toplu halde silme find /var/cache -type f -atime +30 -delete find /tmp -type f -atime +7 -delete # Session dosyalarını temizleme find /var/lib/php/sessions -type f -atime +1 -delete
Bu işlemler inode sayısını önemli ölçüde azaltacaktır.
Uzun Vadeli Disk Alanı Yönetimi
Otomatik Log Rotasyonu Yapılandırma
Log dosyalarının kontrolsüz büyümesini önlemek için logrotate yapılandırması kritik öneme sahiptir:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Bu yapılandırma, log dosyalarını günlük olarak döndürür, 14 günlük arşiv tutar ve eski dosyaları sıkıştırır.
Disk Kullanımını İzleme ve Uyarı Sistemleri
Sunucu disk alanını sürekli izlemek için monitoring araçları kullanmanızı öneririz:
# Bash script ile disk uyarısı
#!/bin/bash
THRESHOLD=90
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $USAGE -gt $THRESHOLD ]; then
echo "Disk usage is above $THRESHOLD%: $USAGE%"
# E-posta veya webhook ile bildirim gönder
fi
Bu scripti crontab'a ekleyerek düzenli kontrol sağlayabilirsiniz.
Disk Alanı İzleme Araçları
| Araç | Özellik | Uygunluk |
|---|---|---|
| Zabbix | Enterprise seviye izleme, Grafikler, Alarm | Büyük altyapılar |
| Nagios | Esnek, plugin tabanlı | Orta ölçekli |
| Prometheus + Grafana | Modern, container desteği | Cloud-native |
| ncdu | CLI tabanlı, interaktif | Küçük sunucular |
Sunucu izleme araçları hakkında detaylı bilgi için trafik analizi rehberimize göz atabilirsiniz.
Disk Alanı Sorunları İçin Önleyici Tedbirler
- Disk kotası uygulama: Kullanıcı veya klasör bazlı disk kotası belirleyin
- RAID yapılandırması: Disk arızasına karşı RAID kullanın ve alanı verimli yönetin
- SSD/HDD kombinasyonu: Log ve geçici dosyalar için ayrı diskler kullanın
- Bulut depolama entegrasyonu: Yedekleri ve büyük dosyaları buluta taşıyın
- Düzenli bakım: Haftalık veya aylık disk temizliği rutinleri oluşturun
Disk Alanı Hatası Durumunda Yapılması Gerekenler: Kontrol Listesi
| Adım | Komut/Eylem | Aciliyet |
|---|---|---|
| 1 | df -h ile durumu kontrol etme | Çok Acil |
| 2 | df -i ile inode kontrolü | Çok Acil |
| 3 | du -sh ile büyük klasörleri tespit etme | Acil |
| 4 | Log dosyalarını temizleme veya döndürme | Acil |
| 5 | Geçici dosyaları silme | Acil |
| 6 | Servisleri yeniden başlatma | Orta |
| 7 | Monitoring alarm kurma | Orta |
| 8 | Kalıcı çözüm yapılandırma | Düşük |
Sonuç ve Öneriler
"Out of Disk Space" hataları genellikle önlenebilir sorunlardır. düzenli izleme, otomatik log rotasyonu ve proaktif bakım ile bu sorunların büyük çoğunluğu bertaraf edilebilir. Sunucu altyapınızı güvende tutmak için disk izleme sistemlerini mutlaka kurun ve düzenli bakım rutinleri oluşturun.
Sunucu güvenliği ve optimizasyonu hakkında daha fazla bilgi için siber tehditler rehberi ve güvenlik header'ları konularını inceleyebilirsin