Ubuntu Server ortamlarında disk alanı yönetimi, sistem yöneticilerinin en kritik görevlerinden biridir.
Ubuntu Server ortamlarında disk alanı yönetimi, sistem yöneticilerinin en kritik görevlerinden biridir. Disk doluluğu, hizmet kesintilerine, veri kaybına veya performans düşüşlerine yol açabilir. Bu makalede, disk kullanımını düzenli olarak izleyen ve belirlenen eşik değerleri aşıldığında e-posta uyarısı gönderen bir Bash scriptini adım adım ele alacağız. Bu script, cron job ile otomatikleştirilerek sunucunuzun sağlığını proaktif bir şekilde koruyacaktır. Kurulum ve yapılandırma süreçlerini detaylıca inceleyerek, pratik bir çözüm sunacağız.
İlk adım, disk kullanımını kontrol eden scripti oluşturmaktır. Ubuntu Server’da varsayılan Bash kabuğunu kullanarak basit ancak etkili bir script yazacağız. Script, df komutunu temel alır ve kök dizin ile diğer kritik bölümleri tarar. Eşik değeri olarak yüzde 80’i varsayalım; bu değer kolayca özelleştirilebilir.
Script dosyasını oluşturmak için terminalde şu komutu çalıştırın:
sudo nano /usr/local/bin/disk-alert.sh
Ardından şu içeriği ekleyin:
#!/bin/bash
THRESHOLD=80
EMAIL="[email protected]"
SUBJECT="Disk Kullanım Uyarısı - $(hostname)"
df -h | grep -vE '^tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
usep=$(echo $output | awk '{ print $1}' | sed 's/%//g')
partition=$(echo $output | awk '{ print $2 }')
if [ $usep -ge $THRESHOLD ]; then
echo "Uyarı: $partition disk kullanımı %$usep'e ulaştı!" | mail -s "$SUBJECT" $EMAIL
fi
done
Bu script, disk bölümlerini tarar, kullanım yüzdesini hesaplar ve eşik aşıldığında mail komutu ile bildirim gönderir. awk ve sed ile veri ayrıştırma, hassasiyet sağlar. Dosyaya çalıştırma izni verin: sudo chmod +x /usr/local/bin/disk-alert.sh. Bu yapı, yaklaşık 50 satır kodla kapsamlı izleme sunar ve sunucu yükünü minimumda tutar.
E-posta uyarılarının çalışması için postfix veya sendmail gibi bir MTA (Mail Transfer Agent) kurulu olmalıdır. Ubuntu’da varsayılan olarak mailutils paketiyle hızlıca etkinleştirilebilir. Önce paketi yükleyin: sudo apt update && sudo apt install mailutils. Kurulum sırasında “Internet Site” seçeneğini belirleyin ve sistem mail adını girin.
Postfix’i yapılandırmak için sudo dpkg-reconfigure postfix komutunu kullanın. “Internet Site” modunu seçin ve FQDN (Fully Qualified Domain Name) girin, örneğin “server.ornek.com”. Ana yapılandırma dosyası /etc/postfix/main.cf‘te myhostname ve mydomain parametrelerini doğrulayın. Relay host gerekiyorsa, relayhost = [smtp.gmail.com]:587 ekleyin ve kimlik doğrulamayı /etc/postfix/sasl_passwd ile ayarlayın. Değişiklikleri uygulayın: sudo systemctl reload postfix. Bu adımlar, harici SMTP sunucularıyla uyumlu çalışmayı sağlar ve test için echo "Test" | mail -s "Deneme" [email protected] komutunu kullanın. Yaklaşık 100 kelimelik bu süreç, güvenilir bildirim altyapısı kurar.
Bildirim sistemini doğrulamak için scripti manuel çalıştırın: /usr/local/bin/disk-alert.sh. E-posta gelmediyse, logları inceleyin: tail -f /var/log/mail.log. Hatalar genellikle DNS veya izin sorunlarından kaynaklanır. hostname -f ile FQDN’yi kontrol edin ve sudo postmap /etc/postfix/sasl_passwd ile harita yenileyin. Bu testler, üretim öncesi güvenilirliği artırır ve olası sorunları önler, böylece script sorunsuz entegre olur.
Scripti cron tablosuna ekleyerek saatte bir çalıştırmayı sağlayın. sudo crontab -e ile düzenleyici açın ve şu satırı ekleyin: 0 * * * * /usr/local/bin/disk-alert.sh. Bu, her saat başı kontrol yapar. Loglama için script sonuna >> /var/log/disk-alert.log 2>&1 ekleyin, böylece tail -f /var/log/disk-alert.log ile izleyin.
İleri düzey için birden fazla eşik tanımlayın: Uyarı için %80, kritik için %90. Scripti genişleterek HTML e-posta desteği ekleyin veya Slack/Telegram entegrasyonu için curl kullanın. Performans için ionice ile I/O önceliğini düşürün. Bu otomatikleştirme, manuel müdahaleyi ortadan kaldırır ve 7/24 izleme sağlar. Cron loglarını /var/log/syslog‘da takip edin.
Bu disk kullanım alert scripti, Ubuntu Server’ınızı proaktif yönetmenizi sağlar. Düzenli bakım ve eşik ayarlamalarıyla entegre ederek, veri bütünlüğünü ve hizmet sürekliliğini maksimize edin. Uygulama sonrası izlemeyi ihmal etmeyin; bu yaklaşım, kurumsal ortamlarda standart bir pratik haline gelecektir.