Kayıt döndürme, sunucunun tamamını kapsayan bir ayar değildir. Her hizmet kendi kuralıyla gelir; elle kurulmuş ya da alışılmadık bir yere yazacak biçimde ayarlanmış olan her şeyin ise hiç döndürmesi yoktur ve disk dolana kadar büyür.
Büyüyeni bulun
du -h /var/log --max-depth=2 | sort -h | tail -15
ls -lhS /var/log/*.log | head
Onu döndürün
# /etc/logrotate.d/mysite
/var/www/site/storage/logs/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
create 0640 www-data www-data
}
Sıkıştırılmış on dört gün iyi bir varsayılandır: geçen haftayı soruşturmaya yetecek kadar uzun, unutulacak kadar küçük.
logrotate -d /etc/logrotate.d/mysite # dry run, prints what it would do
Saatler içinde dolan bir kayıt
Bu bir döndürme sorunu değildir. Her istekte yinelenen tek bir uyarı, bir günde gigabaytlar yazar; onu döndürmek ise yalnızca kanıtı daha hızlı silmek olur.
sort /var/log/nginx/error.log | uniq -c | sort -rn | head -5
En üstteki satır neredeyse her zaman sorunun tamamıdır: bir milyon kez istenmiş eksik bir dosya, ya da her sayfada beliren tek bir PHP uyarısı.
Bir hizmetin yazmakta olduğu bir kaydı silerek yer açmak, yeri geri getirmez — süreç dosya tutamacını elinde tutar. Onu kesin:
: > /var/log/big.logSıçrayabilecek her şey için güne göre olduğu kadar boyuta göre de döndürün:
daily yanındaki size 100M, kaçağı diskten önce yakalar.