Sabah ilk iş e-postanızı göndermeye çalıştığınızda sunucunun yanıt vermediğini, gelen kutunuzun yeni mesaj almadığını ya da kullanıcıların "452 4.3.1 Insufficient system storage" hatasıyla karşılaştığını fark ettiniz. Bu, e-posta sunucusu diskinin dolduğunun en yaygın belirtisidir ve dakikalar içinde müşteri iletişimini, sipariş akışını ve kurumsal itibarı doğrudan etkiler. Aşağıdaki rehber, acil müdahaleden kalıcı önleme stratejilerine kadar sistematik bir yol haritası sunar.
df -h ile hangi bölümün dolu olduğunu tespit edin; büyük log dosyalarını, eski kuyruk mesajlarını ve şişmiş posta kutularını temizleyin. Postfix için postsuper -d ALL deferred, Exim için exim -bp | exiqgrep -z | xargs exim -Mrm komutları acil boşaltma sağlar. Uzun vadede kota yönetimi, log rotasyonu ve otomatik uyarı sistemi kurarak bu sorunu kalıcı olarak engelleyebilirsiniz.E-posta sunucularında disk dolması tek bir nedene bağlı değildir. RFC 5321'de tanımlanan SMTP protokolü, teslim edilemeyen mesajları yeniden deneme kuyruğuna (deferred queue) alır; bu kuyruk zamanla onlarca gigabayta ulaşabilir. Bunun yanı sıra Postfix, Exim veya Sendmail gibi MTA'ların (Mail Transfer Agent) ürettiği log dosyaları, düzgün döndürülmediğinde (log rotation) hızla büyür. Kullanıcı posta kutularındaki büyük ekler, özellikle IMAP protokolüyle sunucuda depolanan mesajlar, kurumsal ortamlarda en öngörülemeyen disk tüketim kaynağı olur.
Spam ve kötü amaçlı yazılım kaynaklı posta patlamaları da kritik bir etkendir. Bir kullanıcı hesabı ele geçirildiğinde sunucu dakikada binlerce mesaj üretebilir; bu hem kuyruğu hem de log dizinini şişirir. Aynı zamanda Dovecot, Cyrus veya Courier gibi IMAP/POP3 sunucularının indeks ve önbellek dosyaları da beklenmedik ölçekte yer kaplayabilir.
İlk adım hangi bölümün dolu olduğunu anlamaktır:
df -h
du -sh /var/log/mail* /var/spool/postfix/* /var/mail/* 2>/dev/null | sort -rh | head -20
df -h çıktısında %100 ya da Use% sütununda yüksek değer gören bölümü not edin. Genellikle suçlu /var veya kök bölümdür.
Deferred (ertelenmiş) kuyruk hızla şişer. Kuyruğun boyutunu görmek için:
postqueue -p | tail -1
Tüm ertelenmiş mesajları silmek için:
postsuper -d ALL deferred
Yalnızca belirli bir gönderenden gelen mesajları silmek için:
postqueue -p | grep "spammer@example.com" | awk '{print $1}' | tr -d '!' | postsuper -d -
Exim kullanan sunucularda (cPanel/WHM ortamları dahil) dondurulmuş mesajları temizlemek için:
exim -bp | exiqgrep -z | xargs exim -Mrm
Kuyrukta toplam mesaj sayısını görmek için exim -bpc komutunu kullanın.
/var/log/mail.log ya da /var/log/maillog dosyaları gigabaytlara ulaşmış olabilir. Dosyayı silmeden içini boşaltmak için:
# Dosyayı silmeden içini temizle (çalışan process dosyayı tutmaya devam eder)
> /var/log/mail.log
# Logrotate ile hemen döndür
logrotate -f /etc/logrotate.d/rsyslog
find /var /home /root -type f -size +100M 2>/dev/null | xargs ls -lh | sort -k5 -rh | head -20
Bu komut 100 MB'ın üzerindeki dosyaları boyuta göre sıralar. Eski .gz log arşivleri, atıl veritabanı yedekleri veya büyük ek dosyaları burada görünür.
| Kaynak | Tipik Konum | Olası Boyut | Temizleme Yöntemi |
|---|---|---|---|
| Postfix deferred kuyruk | /var/spool/postfix/deferred/ |
1 GB – 50 GB | postsuper -d ALL deferred |
| Mail log dosyaları | /var/log/mail.log |
500 MB – 20 GB | logrotate -f / truncate |
| Kullanıcı posta kutuları | /var/mail/ veya /home/*/Maildir/ |
GB – TB arası | Kota uygulaması, eski mesajları arşivleme |
| Dovecot indeks/önbellek | /home/*/Maildir/.imap/ |
Yüzlerce MB | doveadm expunge, indeks yenileme |
| Spam/antivirus karantina | /var/spool/amavis/ |
1 GB – 30 GB | Otomatik TTL (süre aşımı) ayarı |
| Exim frozen mesajlar | /var/spool/exim4/input/ |
Yüzlerce MB – 10 GB | exiqgrep -z | xargs exim -Mrm |
Disk dolduğunda MTA'lar genellikle yeni bağlantı kabul etmeyi durdurur ve gönderici sunuculara 452 (geçici hata) ya da 552 (kalıcı hata) SMTP durum kodlarını döner. RFC 5321 Bölüm 4.2'ye göre 4xx serisi geçici hata, 5xx serisi ise kalıcı redddir. Gönderici sunucu, 4xx kodunu aldığında RFC 5321 Bölüm 4.5.4'te belirtilen yeniden deneme mekanizmasını devreye sokar ve mesajı kendi kuyruğunda tutar; bu nedenle disk sorununuzu çözdükten sonra gönderici taraftaki mesajlar otomatik olarak yeniden iletilir.
Temizleme işlemleri tamamlandıktan sonra MTA'yı yeniden başlatın:
# Postfix
systemctl restart postfix
# Exim
systemctl restart exim4
/etc/logrotate.d/postfix dosyasına aşağıdaki gibi bir yapılandırma ekleyin:
/var/log/mail.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
postrotate
systemctl reload postfix > /dev/null 2>&1 || true
endscript
}
Dovecot'ta kullanıcı başına kota tanımlamak için /etc/dovecot/conf.d/90-quota.conf dosyasını düzenleyin:
plugin {
quota = maildir:User quota
quota_rule = *:storage=5G
quota_warning = storage=90%% quota-warning 90 %u
}
Bu yapılandırma her kullanıcıyı 5 GB ile sınırlar ve %90 dolduğunda uyarı gönderir.
Basit bir cron + bash betiğiyle disk kullanımını izleyebilirsiniz:
#!/bin/bash
THRESHOLD=85
USAGE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -ge "$THRESHOLD" ]; then
echo "DİKKAT: / bölümü %$USAGE dolu." | mail -s "Disk Uyarısı" admin@domain.com
fi
Bu betiği /etc/cron.d/disk-check olarak saatlik çalışacak şekilde tanımlayın.
Gelen spam trafiği kuyrukları ve log dosyalarını besler. RFC 7208'de tanımlanan SPF (Sender Policy Framework), RFC 6376'da tanımlanan DKIM (DomainKeys Identified Mail) ve RFC 7489'da tanımlanan DMARC politikalarının doğru yapılandırılması, alanınızı taklit eden sahte mesajların sunucunuza girmesini önler. Google Postmaster Tools ve Microsoft SNDS (Smart Network Data Services) panelleri, alanınızın itibarını ve gelen spam oranını ücretsiz olarak izlemenize olanak tanır.
Amavis karantina dizininin TTL'sini (time-to-live) kısıtlayın; aksi takdirde tespit edilen spam mesajları sonsuza dek birikir:
# /etc/amavis/conf.d/50-user
$max_age_of_quarantine = 7; # gün
Pflogsumm, Postfix log dosyalarını ayrıştırarak günlük özet raporlar üretir ve hangi alanların en fazla trafiği oluşturduğunu gösterir. mailgraph aracı ise RRDtool tabanlı grafiklerle saatlik/günlük trafik ve hata oranlarını görselleştirir. Kurumsal ortamlarda Prometheus'un node_exporter modülü disk kullanım metriklerini toplar; Grafana üzerinde tanımlanan eşik uyarıları (alert rules) disk dolmadan önce operasyon ekibini bilgilendirir.
Hayır, kaybolmaz. RFC 5321'e göre gönderici sunucu, 452 geçici hata kodu aldığında mesajı kendi kuyruğunda saklar ve belirli aralıklarla (genellikle 5 dakika ile 4 saat arasında değişen backoff sürelerinde) yeniden göndermeyi dener. Disk sorununuzu çözdükten sonra bu mesajlar otomatik olarak iletilir. Ancak mesajın gönderici sunucudaki kuyrukta ne kadar kaldığı, o sunucunun yapılandırmasına bağlıdır; tipik değer 5 gündür.
postqueue -p | tail -1 komutu toplam bekleyen mesaj sayısını verir. postqueue -p | grep "^[A-F0-9]" | wc -l ise doğrudan kuyruktaki mesaj kimliklerini sayar. Kuyruk çok büyükse (10.000+) postqueue -p komutu uzun süre çalışabilir; find /var/spool/postfix/deferred -type f | wc -l daha hızlı bir alternatiftir.
Acil disk baskısında evet, ancak silmeden önce hangi mesajların beklemede olduğunu gözden geçirin. postqueue -p | grep -v "^[[:space:]]" | head -50 ile ilk 50 mesajın alıcı ve gönderici bilgisini görebilirsiniz. Meşru iş e-postaları varsa bunları ayrı bir listede saklayıp ilgili göndericileri bilgilendirmeniz önerilir.
Postfix bazı durumlarda disk dolduğunda oluşturduğu kilitleme durumundan otomatik çıkamaz. systemctl restart postfix veya postfix stop && postfix start ile servisi yeniden başlatın. Ardından postfix check komutuyla yapılandırma bütünlüğünü doğrulayın.
Postfix, rsyslog veya syslog-ng gibi servisler log dosyasını açık tuttuğu sürece dosyayı silmek disk alanı kazandırmaz; inode serbest kalsa da process eski dosya tanıtıcısına yazmayı sürdürür. > /var/log/mail.log komutu dosyayı sıfırlar ama process açık tutmaya devam eder. Kalıcı çözüm için logrotate -f ile döndürme yapın ve servise SIGHUP gönderin.
Bu, toplam disk kapasitesine bağlıdır. Genel kural olarak tek bir kullanıcının posta kutusu toplam disk kapasitesinin %5'ini aşmamalıdır. Kurumsal sunucularda kullanıcı başına 2–10 GB kota uygulanması yaygındır. Kotasız ortamlarda büyük ek dosyaları (CAD çizimleri, video dosyaları vb.) posta kutusuna bırakılan kullanıcılar yüzlerce GB tüketebilir.
Fail2ban veya Postfix'in smtpd_recipient_limit parametresiyle aşırı gönderim hızını kısıtlayabilirsiniz. Ayrıca tail -f /var/log/mail.log | grep "too many" komutuyla gerçek zamanlı izleme yapabilirsiniz. Google Postmaster Tools ve Microsoft SNDS panoları, alanınızın spam oranı yükseldiğinde e-posta uyarısı gönderebilir.
Kısmen. Google Workspace ve Microsoft 365 gibi bulut tabanlı e-posta hizmetleri depolama sınırlarını kendi yönetir; disk dolması riski büyük ölçüde ortadan kalkar. Ancak kendi relay veya gateway sunucunuzu (örneğin Connect365 altyapısı üzerinden) çalıştırıyorsanız kuyruk ve log yönetimi yine sizin sorumluluğunuzdadır.
Dovecot, hızlı arama için her posta kutusu klasörüne ait indeks (dovecot.index), indeks kaydı (dovecot.index.log) ve önbellek (dovecot.index.cache) dosyaları oluşturur. Bu dosyalar bazen posta kutusu içeriğinden büyük olabilir. doveadm index -u kullanici@domain.com INBOX komutuyla indeksleri yeniden oluşturun; eski ve şişmiş indeks dosyaları silinir.
Kısa vadede LVM (Logical Volume Manager) kullanıyorsanız yeni bir fiziksel disk ekleyip lvextend ve resize2fs komutlarıyla bölümü canlı olarak genişletebilirsiniz. Bulut ortamlarında (AWS, Azure, GCP) disk boyutunu portaldan artırıp growpart ve dosya sistemi araçlarıyla genişletmek dakikalar içinde tamamlanır. Uzun vadede ise posta kutularını nesne depolama (object storage) katmanına taşıyan Dovecot'un obox eklentisi ya da harici arşivleme çözümleri kalıcı ölçeklenebilirlik sağlar.
Reklamsız, KVKK uyumlu; kurulum ve geçiş ücretsiz, mailleri biz taşırız.
Kurulum + migrasyon ücretsiz. KVKK uyumlu, Türkiye'de barındırma. 7/24 Türkçe destek.
Kampanya 30 Haziran'a kadar geçerlidir.