Sunucularda disk doluluk oranının artması, sistem performansını olumsuz etkileyebilir ve dosya yazma işlemlerinin başarısız olmasına neden olabilir. Disk alanının tükenmesi, sunucu çökmesine, hizmet kesintilerine ve veri kaybına yol açabilir. Düzenli bakım, otomatik log temizleme ve yedekleme yönetimi ile bu sorunun önüne geçebilirsiniz
Disk Dolu Probleminin Nedenleri
- Büyük Boyutlu Log Dosyaları:
- Apache, Nginx, MySQL ve diğer servislerin oluşturduğu büyük log dosyaları.
/var/log/
dizininde biriken eski log kayıtları.
- Gereksiz Dosyaların Birikmesi:
- Eski yedek dosyaları, önbellek (cache) dosyaları ve gereksiz geçici dosyalar.
- Kullanılmayan paketler ve güncellenmemiş sistem dosyaları.
- Yanlış Yapılandırılmış Yedekleme Sistemleri:
- Otomatik yedekleme sistemlerinin sürekli yeni dosyalar üretmesi.
- Disk bölümlendirmesinin hatalı yapılandırılması.
- Veritabanı Şişmesi:
- MySQL, PostgreSQL gibi veritabanlarının büyümesi ve eski verilerin temizlenmemesi.
binlog
dosyalarının kontrolsüz bir şekilde birikmesi.
- Gereksiz Kullanıcı Dosyaları:
- FTP ve kullanıcıların yüklediği büyük boyutlu dosyaların kontrolsüz bir şekilde birikmesi.
Disk Doluluk Problemini Teşhis Etme
1. Disk Kullanımını Kontrol Edin
df -h
komutu ile disk doluluk oranını inceleyin.du -sh /*
komutu ile hangi dizinlerin en fazla yer kapladığını belirleyin.
2. Büyük Dosyaları Bulun
find / -type f -size +1G
komutuyla 1GB üzerindeki büyük dosyaları listeleyin.du -ah /var/log | sort -rh | head -10
ile en büyük log dosyalarını tespit edin.
3. Veritabanı ve Log Büyüklüklerini Kontrol Edin
mysql -u root -p -e 'SHOW DATABASES;'
komutu ile veritabanlarının büyüklüğünü analiz edin.journalctl --disk-usage
ile sistem günlük dosyalarının ne kadar yer kapladığını öğrenin.
Disk Doluluk Problemini Önleme ve Çözümler
1. Gereksiz Log Dosyalarını Temizleyin
✅ /var/log/
dizinindeki eski log dosyalarını sıkıştırın veya silin:
sudo journalctl --vacuum-time=7d
sudo rm -rf /var/log/*.gz
✅ Apache ve Nginx loglarını döngüsel hale getirmek için logrotate
kullanın.
2. Gereksiz Dosya ve Klasörleri Temizleyin
✅ tmp
dizininde biriken gereksiz dosyaları temizleyin:
sudo rm -rf /tmp/*
✅ apt-get autoremove
ve apt-get autoclean
komutlarıyla kullanılmayan paketleri kaldırın.
3. Veritabanı Optimizasyonu Yapın
✅ OPTIMIZE TABLE
komutunu kullanarak veritabanı boyutunu küçültün.
✅ MySQL binlog
dosyalarını temizlemek için:
PURGE BINARY LOGS BEFORE NOW() - INTERVAL 7 DAY;
✅ PostgreSQL için vacuumdb
komutunu çalıştırarak gereksiz alanları temizleyin.
4. Eski Yedekleme Dosyalarını Temizleyin
✅ /backup/
dizinindeki eski yedekleri periyodik olarak silin.
✅ Otomatik yedekleme sistemlerinde disk alanını sınırlayacak yapılandırmaları ayarlayın.
5. Disk Bölümleme ve Genişletme İşlemleri
✅ Eğer disk doluysa, LVM kullanıyorsanız mevcut bölümü genişletin:
lvextend -L +10G /dev/mapper/vg-root
resize2fs /dev/mapper/vg-root
✅ Ek depolama eklemek için harici bir disk bağlayın veya cloud depolama çözümleri kullanın.
Yorum gönder