Loglar üzünüzü görmür
Web server, MySQL, tətbiq - hamısı log yazır. Bir neçə həftə sonra logs/ qovluğu 50 GB ola bilər. Disk dolanda hər şey çökər. Logrotate avtomatik sıxır, köhnəni silir.
Logrotate quraşdırılmış mı?
which logrotate # /usr/sbin/logrotate ls /etc/logrotate.d/
Default-da Ubuntu/Debian-da quraşdırılıb. Yoxdursa: sudo apt install logrotate.
Konfiq strukturu
/etc/logrotate.conf # əsas /etc/logrotate.d/ # hər xidmət üçün ayrı fayl
Custom log üçün konfiq
Tutaq ki, /var/log/myapp/app.log böyüyür. Yarat /etc/logrotate.d/myapp:
/var/log/myapp/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
create 644 www-data www-data
sharedscripts
postrotate
systemctl reload myapp > /dev/null 2>&1 || true
endscript
}Açıqlama
daily- gündəlik döndürrotate 14- 14 köhnə nüsxə saxla, sonra silcompress- gzip ilə sıxdelaycompress- yeni dönmüş faylı dərhal sıxma (bir gün gözlə)missingok- log yoxdursa səhv vermənotifempty- boş fayl döndərməcreate- yeni log faylının icazələripostrotate- döndükdən sonra icra et (xidmət reload)
Test
sudo logrotate -d /etc/logrotate.d/myapp # dry run sudo logrotate -f /etc/logrotate.d/myapp # zorla icra
Status
cat /var/lib/logrotate/status
Hansı log nə zaman dönüb göstərir.
Real nümunə: Nginx
/var/log/nginx/*.log {
weekly
rotate 52
compress
delaycompress
missingok
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}