Bir şey onları kesmedikçe kayıtlar sonsuza dek büyür. Dolu bir disk, veritabanını, web sunucusunu ve yedekleri aynı anda devirir; ve açıklanamayan kesintilerin en yaygın sebeplerindendir — bkz. Diski dolduran kayıtlar.
Kendi uygulamanız için bir kural
# /etc/logrotate.d/site
/var/www/site/storage/logs/*.log {
daily
rotate 14
size 100M
compress
delaycompress
missingok
notifempty
create 0640 www-data www-data
sharedscripts
postrotate
systemctl reload php8.3-fpm > /dev/null 2>&1 || true
endscript
}
İşe yarayıp yaramayacağına karar veren seçenek
Bir kayıt dosyasını açık tutan bir süreç, DÖNDÜRÜLMÜŞ dosyaya yazmayı sürdürür. Disk tıpkı eskisi gibi dolar; bu sırada güncel kayıt boş kalır ve her şey yolunda görünür. Ya yukarıdaki gibi postrotate içinde hizmeti yeniden yükleyin, ya da copytruncate kullanın.
copytruncate # copy the file, then empty the original in place
# simpler, and loses the few lines written during the copy
Bir gün beklemeden sınayın
sudo logrotate -d /etc/logrotate.d/site # dry run, prints what it would do
sudo logrotate -f /etc/logrotate.d/site # force it now
ls -la /var/www/site/storage/logs/
Günlük ayrıca döndürülür
journalctl --disk-usage
sudo journalctl --vacuum-size=500M
systemd kendi kayıtlarını kendi sınırları altında tutar — bkz. Sistem günlüğünü okumak.
Bir de diski izleyin
df -h
sudo du -xh /var/log /var/www --max-depth=2 2>/dev/null | sort -h | tail -15
Yüzde 95'te değil, yüzde 80'de uyarı verin. O iki sayının arasında harekete geçecek zaman vardır; yüzde 95'ten sonra büyük bir kayıt aradaki farkı dakikalar içinde kapatabilir.