Sunucuda Disk Alanı Yönetimi ve İmaj Temizliği Rehberi
Sunucuda Disk Alanı Yönetimi ve İmaj Temizliği Rehberi
Son Güncelleme: Mayıs 2026
Giriş: Bu rehber, sunucuda disk alanı yönetimi, log rotasyonu, docker imaj temizliği ve paket önbelleği temizleme gibi pratik konuları kapsamlı şekilde ele alır. Hem paylaşımlı hem de özel sunucularda (VPS/VDS/Kiralık) kullanılabilecek adımlar, otomasyon örnekleri ve dikkat edilmesi gerekenler bu yazıda bulunmaktadır.
İçindekiler
- Disk Alanı Yönetimi Neden Önemli?
- Log Rotasyonu ve Log Yönetimi
- Temp Dosyalar ve Paket Önbellek Temizliği
- Docker / Container İmaj Temizliği
- Otomasyon ve Örnek Scriptler
- Yedekleme, Geri Yükleme ve Güvenli Temizlik
- Sıkça Sorulan Sorular
- Sonuç
Disk Alanı Yönetimi Neden Önemli?
Sunucularda disk doluluğu işletim sisteminin kararlılığını, veri tabanı performansını ve log yazımını doğrudan etkiler. Bir disk tamamen dolduğunda hizmetler durabilir, veritabanları read-only moda geçebilir veya uygulamalar hata vermeye başlayabilir. Bu nedenle düzenli alan temizliği ve izleme ayarlamak kritik öneme sahiptir.
Temel İlkeler
- Proaktif İzleme: Disk doluluk seviyesini %70-80 üzerine çıkmadan alarm kurun.
- Prioriteleme: Kritik servislerin bulunduğu mount point'leri önceliklendirin (ör.
/var,/var/lib/mysql,/home). - Yedekleme: Silme işlemi yapmadan önce yedek veya snapshot alın.
Disk Kullanımını Hızlı Tespit Komutları
En temel kontrol için aşağıdaki komut örnekleri kullanılabilir:
df -h
du -sh /var/log/* | sort -h
ncdu /
Burada df -h genel durum, du -sh dizin bazlı kullanım, ncdu ise interaktif analiz sağlar.
Log Rotasyonu ve Log Yönetimi
Log rotasyonu disk doluluğunu engellemenin en etkili yollarından biridir. Sistem logları ve uygulama logları büyüyerek diski tüketir; bu yüzden uygun rotasyon, sıkıştırma ve saklama politikaları belirlenmelidir.
logrotate ile Temel Konfigürasyon
Çoğu Linux dağıtımında logrotate varsayılan olarak gelir. Örnek bir konfigürasyon:
/var/log/myapp/*.log {
daily
rotate 14
compress
missingok
notifempty
create 0640 root adm
}
Bu yapı günlük döndürme, 14 günlük saklama ve sıkıştırma uygular.
Journal (systemd) Log Temizliği
systemd journal büyümesini sınırlandırmak için:
journalctl --vacuum-size=200M
journalctl --vacuum-time=7d
İlk komut toplam journal boyutunu 200MB ile sınırlar, ikincisi 7 günden eski kayıtları siler.
Log Dosyalarını Güvenli Temizleme
- Hedefleme: Önce en büyük log dosyalarını bulun ve hangi uygulamanın yazdığını tespit edin.
- Yedekleme: Gerekiyorsa eski logları sıkıştırıp arşivleyin (ör.
tar -czvfile). - Otomasyon: logrotate ile uzun vadeli yönetim kurun.
Temp Dosyalar ve Paket Önbellek Temizliği
Geçici dosyalar ve paket yönetici önbellekleri sık sık disk tüketir. Aşağıda dağıtım bazlı pratik adımlar var.
APT (Debian/Ubuntu) Temizliği
apt-get clean
apt-get autoclean
apt-get autoremove --purge -y
Not: apt-get clean tüm indirilen paket önbelleğini siler; disk alanı kazanımı sağlar.
Yum/DNF (RHEL/CentOS/Fedora) Temizliği
yum clean all
dnf autoremove -y
Geçici Dizinin Temizlenmesi
Geçici dosyaları temizlerken dikkatli olun; aktif iş süreçleri bazı dosyaları kullanıyor olabilir.
tmpreaper 7d /tmp
# veya basit temizleme
find /tmp -type f -atime +7 -delete
- Güvenlik: Kullanıcı oturumları etkilenmemesi için kısa süreli test yapın.
- İzleme: Temizlemeden sonra servisleri kontrol edin.
Docker / Container İmaj Temizliği
Container ortamları, özellikle CI/CD süreçlerinde hızla disk tüketebilir. Docker için temel temizleme komutları:
docker system df
# Gereksiz her şeyi temizler (dangling image, unused network, stopped container)
docker system prune -a --volumes -f
# Sadece unused images
docker image prune -a -f
Uyarı: -a seçeneği kullanılınca kullanılmayan ama yeniden çekilmesi gereken image'lar da silinir; production ortamda dikkatli kullanın.
Katman (layer) Yönetimi ve Registry Temizliği
- Yerel Registry: Eğer kendi registry'niz varsa, retention policy (saklama politikası) uygulayın.
- CI Pipelines: Pipeline'larda otomatik temizleme adımları ekleyin.
| Yöntem | Avantaj | Dezavantaj |
|---|---|---|
| docker system prune | Hızlı, tek komutla geniş temizlik | Yanlışlıkla ihtiyaç duyulan image'lar silinebilir |
| Registry retention | Uzun vadeli kontrol, merkezi yönetim | Konfigürasyon ve bakım gerektirir |
Otomasyon ve Örnek Scriptler
Tekrarlayan temizleme işlemlerini cron veya sistemd timer ile otomatikleştirin. Aşağıda örnek bir günlük temizlik script'i yer alıyor.
#!/bin/bash
# /usr/local/bin/disk_cleanup.sh
# 1. apt temizliği
apt-get clean
apt-get autoremove -y
# 2. journal temizliği
journalctl --vacuum-size=200M
# 3. docker prune (opsiyonel, production'da dikkat)
docker system prune -f --volumes
# 4. geçici dosyalar
find /tmp -type f -atime +7 -delete
Bu script'i çalıştırılabilir yapın ve cron'a ekleyin:
chmod +x /usr/local/bin/disk_cleanup.sh
# günlük saat 03:30'da çalıştırmak için crontab
30 3 * * * /usr/local/bin/disk_cleanup.sh >> /var/log/disk_cleanup.log 2>&1
- Test: Önce manuel veya staging ortamında çalıştırın.
- Bildirim: Cron çıktısını izleyin ve kritik durumlarda e-posta bildirimleri kurun.
Yedekleme, Geri Yükleme ve Güvenli Temizlik
Her temizleme işleminden önce mutlaka yedek alın. Corelux'un sunduğu Yedekleme Hizmeti gibi çözümler, kritik verilerinizi güvenli şekilde saklamanıza yardımcı olur. Ayrıca, fiziksel veya bulut sunucularda snapshot almak hızlı geri dönüş sağlar.
Örnek Yedek & Geri Yükleme Akışı
- Snapshot: Temizlikten önce volume snapshot alın.
- Test Restorasyon: Periyodik olarak yedekten test restore yapın.
- Dokümantasyon: Hangi klasörün neden silindiğini dokümante edin.
Gerekirse daha yüksek kaynaklı bir altyapıya geçiş için Corelux'un Bulut Sunucu veya Türkiye VPS Sunucu çözümlerini değerlendirebilirsiniz.
Sıkça Sorulan Sorular
Disk temizliği yapmadan önce hangi önlemleri almalıyım?
Öncelikle kritik verilerin yedeğini alın veya volume snapshot oluşturun. Temizlik listesini dokümante edin ve servis kesintisi riski taşıyan dosyaları belirleyin.
Hangi log dosyalarını güvenle silebilirim?
Eski arşivlenmiş veya sıkıştırılmış log dosyalarını silebilirsiniz. Aktif uygulama loglarını silmeden önce rotasyon veya sıkıştırma uygulayın. /var/log içindeki büyük dosyaları tek tek kontrol edin.
Docker temizliği production ortamda nasıl güvenli yapılır?
Production'da önce registry retention ve etiketleme (tagging) politikası uygulayın. Manuel olarak docker image prune veya özel scriptlerle eski image'ları kaldırın; otomatik docker system prune -a risklidir.
Automasyon ile yanlışlıkla dosya silmeyi nasıl önlerim?
Script'lerde dry-run (kuru çalışma) seçenekleri ekleyin, işlemi önce staging'de test edin ve cron job'ları e-posta bildirimli olacak şekilde yapılandırın.
Disk doluluk sınırını nerede tutmalıyım?
Genel öneri kritik mount point'ler için %70-80 sınırıdır. Ancak veritabanı ve log yoğun sistemlerde daha düşük %60-70 hedefi belirlemek daha güvenli olabilir.
Sonuç
Sunucuda disk alanı yönetimi ve imaj temizliği düzenli bakım, otomasyon ve doğru yedekleme stratejileri ile güvenli ve sürdürülebilir hale gelir. Uygulamalı rotasyon, paket önbelleği temizliği ve container yönetimi ile disk kaynaklarınızı etkin kullanabilirsiniz. Eğer daha güçlü kaynak, profesyonel yedekleme veya yönetilen sunucu hizmetine ihtiyaç duyuyorsanız Corelux'un Kiralık Sunucu, Sanal Sunucu veya Yedekleme Hizmeti sayfalarını inceleyebilirsiniz.
Bu rehberde yer alan komutları kullanmadan önce ortamınızı yedeklemeyi ve değişiklikleri test etmeyi unutmayın.
Yazar
Boran BAR