SSH Bağlantı Sorunu: Sunucuya Bağlanamıyorum
SSH bağlantı sorunlarını çözme rehberi: Path.net firewall kuralları, Default Block, SSH portu için filtre kuralı oluşturma ve sorun giderme adımları.
Disk alanı dolduğunda acil müdahale adımları: du, ncdu ile büyük dosya tespiti, log temizleme, inode kontrolü ve otomatik temizlik yapılandırması.
Disk alanının dolması, sunucunuzda servislerin çökmesine, veritabanı hatalarına ve sistem kararsızlığına neden olabilir. Bu rehberde, disk dolduğunda acil müdahale adımlarını ve kalıcı çözümleri detaylı olarak inceleyeceğiz.
# Genel disk kullanımı
df -h
# İnode kullanımı
df -i
# Dosya sistemi türleri ile
df -Th
df -h çıktısını okuma:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 48G 1.2G 98% /
/dev/sda2 200G 150G 40G 79% /home
Disk kullanımı %95'i aştığında acil müdahale gerekir. %100'e ulaştığında servisler çökmeye başlar.
# Kök dizindeki en büyük dizinler
sudo du -sh /* 2>/dev/null | sort -rh | head -20
# /var dizini analizi (genellikle en çok yer kaplayan)
sudo du -sh /var/* 2>/dev/null | sort -rh | head -10
# /var/log analizi
sudo du -sh /var/log/* 2>/dev/null | sort -rh | head -10
# Belirli boyutun üzerindeki dosyaları bulma
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20
# En büyük 20 dosya
sudo find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -20
# ncdu kurulumu
sudo apt install ncdu -y
# Kök dizin analizi
sudo ncdu /
# Belirli dizin analizi
sudo ncdu /var/log
ncdu kısayolları:
d — Seçili dosya/dizini siln — İsme göre sıralas — Boyuta göre sıralaq — Çıkış# Systemd journal boyutunu kontrol etme
journalctl --disk-usage
# Journal'ı 100MB ile sınırlama
sudo journalctl --vacuum-size=100M
# 7 günden eski logları silme
sudo journalctl --vacuum-time=7d
# Büyük log dosyalarını truncate etme (silmeden küçültme)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log
# Eski rotasyonlu logları silme
sudo find /var/log -name '*.gz' -delete
sudo find /var/log -name '*.1' -delete
sudo find /var/log -name '*.old' -delete
truncate komutu dosyayı silmeden boyutunu sıfırlar. Bu, dosyayı kullanan servislerin yeniden başlatılmasını gerektirmez.
# APT cache boyutunu kontrol etme
sudo du -sh /var/cache/apt/archives/
# İndirilen paket dosyalarını temizleme
sudo apt clean
# Eski paket versiyonlarını temizleme
sudo apt autoclean
# Kullanılmayan bağımlılıkları kaldırma
sudo apt autoremove -y
# Mevcut kernel versiyonu
uname -r
# Yüklü kernel'leri listeleme
dpkg --list | grep linux-image
# Eski kernel'leri kaldırma (mevcut kernel hariç)
sudo apt autoremove --purge -y
# /tmp boyutunu kontrol etme
sudo du -sh /tmp
# 7 günden eski tmp dosyalarını silme
sudo find /tmp -type f -atime +7 -delete
# /var/tmp temizleme
sudo find /var/tmp -type f -atime +30 -delete
Bir dosya silinse bile, onu kullanan process hâlâ çalışıyorsa disk alanı serbest kalmaz:
# Silinmiş ama açık dosyaları bulma
sudo lsof +L1 | grep deleted
# Büyük silinmiş dosyaları bulma
sudo lsof +L1 | awk '$7 > 100000000 {print $1, $2, $7, $9}'
# İlgili process'i yeniden başlatarak alanı serbest bırakma
sudo systemctl restart SERVIS_ADI
Özellikle log dosyaları silindiğinde, ilgili servisi (nginx, apache, mysql vb.) yeniden başlatmadan disk alanı serbest kalmaz.
Disk alanı boş görünse bile inode'lar tükenebilir:
# İnode kullanımını kontrol etme
df -i
# En çok dosya içeren dizinleri bulma
sudo find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -20
# Küçük dosya yığınlarını temizleme (örn: session dosyaları)
sudo find /tmp -type f -name 'sess_*' -delete
sudo find /var/spool -type f -mtime +30 -delete
# /etc/logrotate.d/custom-logs
/var/log/myapp/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data www-data
sharedscripts
postrotate
systemctl reload myapp > /dev/null 2>&1 || true
endscript
}
# /etc/systemd/journald.conf
[Journal]
SystemMaxUse=200M
SystemMaxFileSize=50M
MaxRetentionSec=7day
sudo systemctl restart systemd-journald
#!/bin/bash
# Disk kullanım uyarı script'i
THRESHOLD=90
PARTITION="/"
USAGE=$(df -h $PARTITION | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "UYARI: Disk kullanımı %$USAGE ($PARTITION)"
echo "En büyük dizinler:"
du -sh $PARTITION* 2>/dev/null | sort -rh | head -10
fi
Disk dolması acil müdahale gerektiren kritik bir sorundur. Log dosyaları, APT cache ve eski kernel'ler en yaygın alan tüketen unsurlardır. Düzenli log rotasyonu ve disk izleme yapılandırarak bu sorunun tekrarlanmasını önleyebilirsiniz.
REXE müşteri panelinden VNC konsol ile sunucuya erişin. Konsol üzerinden 'sudo journalctl --vacuum-size=50M' ve 'sudo apt clean' komutlarıyla acil alan açın.
sudo du -sh /* | sort -rh | head -10 komutu ile kök dizindeki en büyük dizinleri görebilirsiniz. Genellikle /var/log, /var/cache ve /tmp en çok yer kaplayan dizinlerdir.
Silinen dosyayı kullanan bir process hâlâ çalışıyor olabilir. lsof +L1 | grep deleted komutu ile bu dosyaları bulun ve ilgili servisi yeniden başlatın.
İnode'lar tükenmiş olabilir. df -i komutu ile inode kullanımını kontrol edin. Çok sayıda küçük dosya (session, cache) inode tükenmesine neden olabilir.
Logrotate yapılandırması ile log dosyalarını otomatik rotasyona alın. Journald boyut sınırı belirleyin. Cron job ile düzenli temizlik yapın. Disk kullanım izleme script'i ile uyarı sistemi kurun.
SSH bağlantı sorunlarını çözme rehberi: Path.net firewall kuralları, Default Block, SSH portu için filtre kuralı oluşturma ve sorun giderme adımları.
RDP bağlantı sorunlarını çözme rehberi: Path.net firewall kuralları, Default Block, RDP portu için filtre kuralı oluşturma ve sorun giderme adımları.
WinMTR ve Linux MTR ile ağ testi yapma, ICMP filtre kuralı oluşturma ve sonuçları destek ekibine gönderme rehberi. Paket kaybı ve gecikme analizi.