Situatie
Solutie
Logrotate este o unealtă utilă în sistemele bazate pe Unix/Linux pentru administrarea fișierelor de log. Aceasta permite rotirea, compresia, ștergerea și arhivarea fișierelor de log într-un mod automatizat. Pentru a configura logrotate
pentru a salva logurile pentru Apache HTTP Server (httpd) o dată pe săptămână, urmați acești pași:
- Instalare (dacă este necesar): În unele distribuții Linux,
logrotate
este deja instalat, dar în caz contrar, îl puteți instala folosind managerul de pachete specific distribuției dvs. De exemplu, pe distribuții bazate pe Debian/Ubuntu, puteți folosi:sudo apt-get install logrotate
Pe alte distribuții, comanda ar putea fi diferită.
- Configurare: Creați un fișier de configurare pentru
logrotate
pentru HTTP Server.sudo nano /etc/logrotate.d/httpd
În acest fișier, puteți adăuga regulile pentru rotirea logurilor pentru httpd. Un exemplu de configurare pentru rotirea logurilor Apache o dată pe săptămână ar fi:
/var/log/httpd/*.log
{
weekly
missingok
rotate 4
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>&1 || true
endscript
}
Explicație pentru fiecare opțiune folosită:
weekly
: Specifică frecvența de rotire a logurilor săptămânal.missingok
: Ignoră erorile dacă logurile lipsesc.rotate 4
: Păstrează cel mult 4 versiuni ale fiecărui fișier de log.compress
: Comprimă logurile arhivate.delaycompress
: Așteaptă până la următoarea rotire pentru a comprima fișierele arhivate.notifempty
: Nu rotește fișierele goale de log.create 640 root adm
: Creează fișierele de log noi cu permisiunile specificate.sharedscripts
: Rulează scriptul postrotativ o singură dată, după ce toate fișierele sunt rotite.postrotate
: Comenzile din acest bloc sunt executate după rotirea fișierelor de log. În acest exemplu, comanda este utilizată pentru a reîncărca serviciul httpd pentru a începe să folosească noile fișiere de log.endscript
: Marchează sfârșitul blocului postrotativ.
- Testare: Pentru a testa configurația
logrotate
, puteți folosi comanda:sudo logrotate -d /etc/logrotate.d/httpd
Aceasta va simula rotirea logurilor și va afișa ce ar face
logrotate
fără a efectua efectiv modificări. - Programare:
logrotate
este de obicei rulat automat de către cron. Asigurați-vă că cron-ul ruleazălogrotate
la intervale regulate. Puteți verifica sau modifica programarea în fișierul/etc/cron.daily/logrotate
sau puteți adăuga o nouă intrare în crontab-ul sistemului.
După acești pași, logrotate
ar trebui să administreze logurile Apache HTTP Server pentru a fi rotite o dată pe săptămână conform configurației specificate. Asigurați-vă că ajustați căile fișierelor și alte setări în conformitate cu configurarea specifică a serverului dvs.
Leave A Comment?