Startpagina > Pakket- en systeembeheer > logrotate

logrotate: Systeemlogboekbeheer

logrotate is een hulpprogramma dat verantwoordelijk is voor het automatisch roteren, comprimeren, verwijderen en e-mailen van systeemlogboekbestanden. Dit hulpprogramma voorkomt dat logboekbestanden te groot worden, waardoor schijfruimte wordt ingenomen of de systeemprestaties worden beïnvloed, en maakt efficiënt logboekbeheer mogelijk.

Overzicht

logrotate beheert logboekbestanden periodiek op basis van configuratiebestanden. Oude logs worden verwijderd of gecomprimeerd volgens de bewaarperiode om schijfruimte te besparen, en nieuwe logboekbestanden worden aangemaakt om het systeem stabiel te laten draaien. Op de meeste Linux-systemen wordt het dagelijks automatisch uitgevoerd via cron-taken.

Belangrijkste functies

  • Automatisch roteren en bewaren van logboekbestanden
  • Oude logboekbestanden comprimeren en verwijderen
  • Efficiënt beheer van schijfruimte
  • Flexibele regeltoepassing op basis van configuratiebestanden
  • Standaard meegeleverd op de meeste Linux-distributies

Belangrijkste opties

logrotate werkt voornamelijk via configuratiebestanden, maar u kunt opdrachtregelopties gebruiken om specifieke acties te regelen.

Uitvoeringscontrole

Bestandspecificatie

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`logrotate` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

logrotate wordt meestal automatisch uitgevoerd door cron, maar u kunt het handmatig uitvoeren of testen met specifieke opties.

logrotate uitvoeren met het standaard configuratiebestand

sudo logrotate /etc/logrotate.conf

Wordt normaal gesproken uitgevoerd door cron, maar dit is het commando om logrotate handmatig uit te voeren met het standaard configuratiebestand.

Uitvoeren in debugmodus om wijzigingen voor te bekijken

sudo logrotate -d /etc/logrotate.conf

Wijzigt de logboekbestanden niet daadwerkelijk, maar simuleert en toont welke acties logrotate zal uitvoeren. Essentieel voor het testen van nieuwe configuraties.

Logboekbestanden geforceerd roteren

sudo logrotate -f /etc/logrotate.conf

Negeert de rotatievoorwaarden (bijv. tijd, grootte) en roteert de logboekbestanden onmiddellijk. Gebruikt in noodsituaties of wanneer specifieke logs onmiddellijk moeten worden verwerkt.

Uitvoeren met het configuratiebestand van een specifieke applicatie

sudo logrotate -c /etc/logrotate.d/nginx

Voert logrotate uit met alleen het configuratiebestand van een specifieke applicatie uit de map `/etc/logrotate.d/`.

Tips & Aandachtspunten

Tips en aandachtspunten voor het effectief gebruiken van logrotate.

Locatie van configuratiebestanden

De configuratiebestanden van logrotate bevinden zich meestal op twee locaties.

  • /etc/logrotate.conf: Het globale configuratiebestand, dat standaardwaarden definieert die van toepassing zijn op alle logs en andere configuratiebestanden includeert.
  • /etc/logrotate.d/: De map waar configuratiebestanden voor individuele applicaties (bijv. Nginx, Apache, MySQL) worden opgeslagen om hun logrotatieregels te definiëren.

Belangrijkste configuratie-instructies

Veelgebruikte instructies in logrotate-configuratiebestanden.

  • rotate N: Bewaart N geroteerde logboekbestanden.
  • daily/weekly/monthly/yearly: Specificeert de frequentie van logrotatie.
  • compress: Comprimeert de geroteerde logboekbestanden.
  • delaycompress: Comprimeert het vorige logbestand bij de volgende rotatie.
  • notifempty: Roteert het logboekbestand niet als het leeg is.
  • missingok: Genereert geen fout als het logboekbestand ontbreekt.
  • create [mode owner group]: Maakt een nieuw logboekbestand aan.
  • postrotate/endscript: Definieert scripts die na de logrotatie moeten worden uitgevoerd.

Testen bij configuratiewijzigingen

Voordat u nieuwe logrotate-configuraties toepast, moet u deze altijd testen met de `-d` (of `--debug`) optie. Dit is de veiligste manier om de geldigheid van de configuratie te verifiëren zonder het daadwerkelijke systeem te beïnvloeden.

Integratie met cron

logrotate wordt meestal dagelijks automatisch uitgevoerd via het script `/etc/cron.daily/logrotate`. Dit script leest het bestand `/etc/logrotate.conf` en verwerkt alle geconfigureerde logrotatietaken.


Hétzelfde categoriecommando