logrotate
logrotate е инструмент за Linux, който ротира, компресира и премахва лог файлове, така че те да не запълват диска. Обикновено се стартира веднъж дневно от systemd таймер или cron задача и чете /etc/logrotate.conf, както и правилата за отделните пакети в /etc/logrotate.d/.
1Типично правило
Едно правило описва един или повече лог файлове и директиви като daily или weekly (колко често), rotate 7 (колко стари файла да се пазат), compress (компресиране на старите файлове с gzip), missingok (без грешка, ако файлът липсва), notifempty (пропускане на празни логове) и postrotate ... endscript (команда за изпълнение след ротацията, например за повторно отваряне на лога).
2copytruncate
Някои програми продължават да пишат в същия отворен файл. copytruncate копира лога и след това изрязва оригиналния вместо да го измества, така че програмата запазва файловия си дескриптор; няколко реда, записани по време на копирането, могат да бъдат загубени.
3Тестване
logrotate -d /etc/logrotate.conf се изпълнява в режим за отстраняване на грешки и само извежда какво би се случило. -f принудително стартира ротация, дори ако не ѝ е време.
Как да добавиш и тестваш правило
- Създай
/etc/logrotate.d/myappс пътя до лога и директиви, например weekly, rotate 4, compress, missingok, notifempty. - Сухо стартиране:
sudo logrotate -d /etc/logrotate.d/myapp - Ако изходът изглежда правилен, принудително пусни една ротация:
sudo logrotate -f /etc/logrotate.d/myapp - Провери резултата: ls -l на директорията с логове.
Внимание
- Грешен шаблон за път може да ротира или изтрие логове на други програми.
- Логовете, управлявани от systemd journal, се ограничават в journald.conf, а не от logrotate.
Свързани статии
- journalctl и системният журнал systemdКак да четеш логове с journalctl, да проверяваш колко място заема журналът и да го свиваш безопасно с опциите --vacuum.
- Използване на диска с du и ncduКак да намериш какво заема мястото на Linux диск с du и интерактивния ncdu, с опции, които остават в една файлова система.
- cron и crontabКак cron стартира планирани задачи, петте времеви полета в crontab, къде се намират системните файлове на cron и как се сравняват таймерите на systemd.
Източници
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Последен преглед: