Sunucunuzda disk alanı tamamen dolduğunda, SSH bağlantısı kurmakta zorlanabilirsiniz. Bu yaygın bir sorundur ve sunucunun tepki vermemesine, işlemlerin başarısız olmasına ve hatta sistemin tamamen çökmesine neden olabilir. Bu rehberde, SSH erişimi olmayan bir sunucuda disk alanını nasıl temizleyebileceğinizi ve gelecekte bu sorunu nasıl önleyebileceğinizi adım adım açıklıyoruz.
🚨 Disk Alanı Dolu: Sorunun Nedenleri
Sunucu disk alanının dolmasına neden olabilecek başlıca faktörler:
- 📂 Log dosyalarının aşırı büyümesi –
/var/log/
klasöründeki sistem logları zamanla büyük yer kaplayabilir. - 🗄️ Geçici dosyaların birikmesi –
/tmp/
,/var/tmp/
veya sistem önbellekleri büyük yer kaplayabilir. - 📥 Büyük dosyaların yanlışlıkla bırakılması – Yedekleme veya medya dosyaları aşırı yer kaplayabilir.
- 🔄 Çalışan süreçlerin aşırı disk kullanımı – Veritabanı, cache ve işlem logları diski doldurabilir.
- 🚫 Yanlış yapılandırılmış yedekleme işlemleri – Eski yedek dosyaları otomatik olarak silinmeyebilir.
🔧 SSH Bağlantısı Olmadan Disk Temizleme Yöntemleri
SSH erişimi olmadan disk temizlemek zor olabilir, ancak aşağıdaki yöntemleri deneyerek sunucunuzu tekrar erişilebilir hale getirebilirsiniz.
1️⃣ Kurtarma Moduna Geçerek Disk Temizleme
Eğer SSH erişiminiz tamamen kaybolduysa, sunucunuzu kurtarma modunda başlatabilirsiniz.
🔹 VPS veya Dedicated Sunucu Kullanıcıları İçin:
- Hosting panelinize (örn. DigitalOcean, AWS, Hetzner) giriş yapın.
- Recovery Mode / Rescue Mode seçeneğini etkinleştirin.
- Sunucunuza VNC veya Web Console üzerinden bağlanın.
- Disk alanını temizleyin (aşağıdaki adımları uygulayarak).
🔹 Fiziksel Sunucu Kullanıcıları İçin:
- Sunucunun fiziksel erişimi varsa, bir Linux Live USB ile başlatabilirsiniz.
- Terminalden ilgili disk bölümünü bağlayarak (mount) gereksiz dosyaları temizleyin.
2️⃣ Kurtarma Modundayken Büyük Dosyaları Bulma ve Silme
Sunucuya eriştikten sonra aşağıdaki komutlarla en büyük dosyaları bulabilirsiniz:
# 1GB'dan büyük dosyaları listele
find / -type f -size +1G 2>/dev/null
# En büyük 10 dosyayı listele
du -ah / | sort -rh | head -n 10
Büyük dosyaları silmek için:
rm -rf /var/log/*.log # Log dosyalarını temizle
rm -rf /tmp/* # Geçici dosyaları temizle
3️⃣ Disk Kullanımını Kontrol Etme ve Gereksiz Dosyaları Silme
Disk kullanımını analiz etmek için:
df -h # Diskin doluluk oranını kontrol et
Belirli dizinlerde fazla yer kaplayan dosyaları görmek için:
du -sh /*
du -sh /var/*
du -sh /home/*
Gereksiz dosyaları silmek için:
rm -rf /var/cache/*
rm -rf /var/tmp/*
rm -rf /root/.cache/
4️⃣ Bilinmeyen ve Alternatif Çözümler (Hiçbir Yerde Bulamayacağınız Yöntemler!)
🛠️ LVM Disk Yönetimi ile Alan Açma
Eğer sunucunuz LVM kullanıyorsa, kullanılabilir alanı artırabilirsiniz:
lvextend -L+5G /dev/mapper/centos-root
resize2fs /dev/mapper/centos-root
Bu yöntem, mevcut alanı genişletmeye yardımcı olabilir.
⚡ Disk Dolduğunda Anlık Süreç Durdurma
Eğer disk dolduğunda SSH yanıt vermiyorsa, aktif olarak çalışan büyük dosya oluşturan süreçleri durdurabilirsiniz:
kill -9 $(lsof | grep deleted | awk '{print $2}')
Bu komut, silinmiş ancak hala çalışan işlemler nedeniyle alan kaplayan dosyaları sonlandırır.
🚀 /proc Dizini ile Alan Yaratma
Eğer SSH ile bağlanamıyorsanız ancak fiziksel erişiminiz varsa, /proc
üzerinden çalıştırılan süreçleri gözlemleyerek gereksiz dosyaları silebilirsiniz:
ls -lh /proc/*/fd | grep deleted
Eğer büyük yer kaplayan silinmiş bir dosya tespit ederseniz:
echo "" > /proc/<PID>/fd/<FILE_DESCRIPTOR>
Bu işlem, disk alanını anında boşaltabilir.
🛡️ Disk Alanının Dolmasını Önlemek İçin Alınacak Önlemler
Gelecekte disk dolması sorunuyla karşılaşmamak için aşağıdaki önlemleri alın:
✅ Otomatik Log Temizleme:
echo "0 3 * * * find /var/log -type f -name '*.log' -mtime +7 -delete" >> /etc/crontab
✅ Büyük Dosyaları İzleme:
watch -n 3600 'du -sh /var/*'
✅ Disk Alanı Dolmadan Uyarı Almak İçin:
cat <<EOT >> /etc/crontab
*/30 * * * * root df -h | grep '/dev/sda1' | awk '{if ($5 >= 90) print "Disk dolmak üzere!"}' | mail -s "Disk Alanı Uyarısı" admin@domain.com
EOT
✅ Gereksiz Paketleri Kaldırın:
apt autoremove -y
apt clean
✅ Önceden Planlı Disk Kullanımı Denetimi:
cronjob: du -sh /* | sort -rh | head -n 10
🚀 Sonuç
SSH ile giriş yapamıyorsanız, kurtarma modu veya fiziksel erişim yoluyla disk temizliği yaparak sorunu çözebilirsiniz. Disk alanınızı düzenli olarak takip ederek bu tür sorunları önleyebilirsiniz. Yukarıdaki adımları takip ederek sunucunuzu tekrar çalışır hale getirin! 🔥
Sorularınız veya önerileriniz varsa yorum bırakabilirsiniz! 💬