Linux Logrotate-voorbeelden

Linux Logrotate Voorbeelden



Logboekinformatie is een zeer belangrijk onderdeel van elk besturingssysteem om het probleem van een actieve applicatie te diagnosticeren en de loggegevens helpen bij het vinden van de oplossing van het probleem. De meeste toepassingen van het Linux-besturingssysteem genereren het logboek en de systeembeheerder haalt de vereiste informatie over de toepassing uit de logboekgegevens. De logboekvermeldingen veroorzaken echter soms problemen omdat de omvang van de vermeldingen in de loop van de tijd groter wordt. De logboekvermeldingen zijn dus vereist om te beheren.

De logrotate is een opdrachtregelprogramma van Linux om de logboekvermeldingen te beheren. Deze tool helpt bij het uitvoeren van verschillende soorten taken op logboekinvoer door de beheerder, zoals het beperken van de geroteerde logbestanden, het comprimeren van de geroteerde logbestanden, het verwijderen van onnodige logbestanden, het uitvoeren van het specifieke shell-script op basis van de logbestanden, enz. van het commando “logrorate” voor het op verschillende manieren beheren van de logbestanden worden in deze tutorial aan de hand van meerdere voorbeelden getoond.

Controleer de geïnstalleerde Logrotate-versie

De opdracht “logrotate” is standaard geïnstalleerd in de nieuwe versie van het Ubuntu-besturingssysteem. Voer de volgende opdracht uit om de geïnstalleerde versie van de opdracht “logrotate” te controleren:







$ logroteren --versie



De loggegevens van de verschillende applicaties worden standaard opgeslagen in de map “/var/log”. De volgende soortgelijke inhoud verschijnt als u de inhoud van de map controleert.



$ ls / was / loggen





Stel de “Logrotate”-configuratie in

Waarde bepalen Doel
dagelijks/wekelijks/maandelijks/jaarlijks Het definieert de tijdsduur voor het roteren van de logboeken.
nummer draaien Het definieert het aantal bestanden dat wordt bewaard voordat de oude logbestanden worden verwijderd.
samendrukken Het wordt gebruikt om de logbestanden te comprimeren.
comprimerencmd Het wordt gebruikt om de opdracht “comprimeren” in te stellen. De gzip is de standaardopdracht.
decomprimerencmd Het wordt gebruikt om de opdracht “uitpakken” in te stellen. De gunzip is het standaardcommando.
vertragingcomprimeren Het wordt gebruikt om het compressieproces van de logbestanden te vertragen.
melding leeg Het wordt gebruikt om het lege bestand niet te roteren.
ik mis Als dit is ingesteld, wordt er geen fout gegenereerd voor de ontbrekende logbestanden.
maat Het wordt gebruikt om de limiet in te stellen voor het roteren van de logbestanden.
datumtekst Het wordt gebruikt om een ​​datumwaarde toe te voegen als achtervoegsel aan het rotatiebestand.
kopiëren Het wordt gebruikt om een ​​kopie van het originele bestand te maken.
voorgedraaid Het wordt gebruikt om een ​​script uit te voeren voordat de logbestanden worden geroteerd.
postroteren Het wordt gebruikt om een ​​script uit te voeren na het roteren van de logbestanden.
creëren Het wordt gebruikt om de logbestanden met een root-privilege te maken.

Syntaxis:

De syntaxis van het commando “logrotate” wordt als volgt gegeven:



logroteren [ KEUZE ] config_bestandspad

Met het commando “logrotate” kunnen verschillende soorten opties voor verschillende doeleinden worden gebruikt.

Logrotatie-opties

Enkele nuttige opties van de opdracht “logrotate” worden hieronder vermeld:

-f, –kracht Het wordt gebruikt om de rotatie indien nodig krachtig uit te voeren.
-d, –debuggen Het wordt gebruikt om de foutopsporingsmodus tijdens de rotatie in te schakelen.
-m, –mail Het wordt gebruikt om tijdens de rotatie een e-mail te verzenden.
-s, –state Het wordt gebruikt voor alternatieve statusbestanden.
-gebruik Het wordt gebruikt om de gebruiksinformatie af te drukken.
-?, -hulp Het wordt gebruikt om de helpende berichten af ​​te drukken.
-v, –uitgebreid Het wordt gebruikt om in uitgebreide modus af te drukken.

Configuratiebestand logroteren

Het belangrijkste logrotate-configuratiebestand bevindt zich op de locatie “/etc/logrotate.conf”. Voer de volgende opdracht uit om het bestand in de nano-editor te openen:

$ nano / enz / logrotate.conf

De standaardinstelling van het commando “logrotate” wordt weergegeven in het bestand “logrotate.conf”. De instructie “include” wordt in het bestand gebruikt om de configuratie op te halen die zich in de map “/etc/logrotate.d” bevindt.

Voorbeeld 1: Maak een eenvoudig logrotate-configuratiebestand

Maak een voorbeeldlogbestand met de naam “/var/log/test.log” met de voorbeeldlogboekgegevens. Voer de volgende opdracht uit om de nano-editor te openen en een nieuw “logrotate.conf” -bestand te maken in de maplocatie “/etc/tmp”. Maak de map “/tmp” met rootrechten als deze nog niet eerder is gemaakt.

$ nano / enz / tmp / logrotate.conf

Voeg de volgende inhoud toe aan het bestand voor het bestand “/var/log/test.log”. Volgens de instelling wordt het bestand “test.log” dagelijks geroteerd als de bestandsgrootte groter is dan 5K:

/ was / loggen / test.log {

dagelijks

maat 5K

zijn root adm

}

Voer de volgende opdracht uit om de grootte van het logbestand te controleren:

$ ls -l / was / loggen / test.log

Voer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.

$ sudo logroteren / enz / tmp / logrotate.conf

Voer de volgende opdracht opnieuw uit om de grootte van het logbestand te controleren na het uitvoeren van de opdracht “logrotate”:

$ ls -l / was / loggen / test.log

De grootte van het bestand “test.log” is 1K+. Er vindt dus geen rotatie plaats op basis van de configuratie-instelling.

Wijzig de groottewaarde in 1K in het bestand “/etc/tmp/logrotate.conf” en voer de opdracht “ls” opnieuw uit om de bestandsgrootte van “/var/log/test.log” te controleren. Volgens de uitvoer wordt het logbestand geroteerd en verwijderd omdat de maximale grootte wordt overschreden.

Voorbeeld 2: Gebruik van Logrotate Copytruncate

Maak of wijzig het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen om het gebruik van de copytruncate weer te geven. Volgens de nieuwe instellingen maakt logrotate een kopie van het originele bestand door de originele bestandsgrootte op nul te zetten.

/ was / loggen / test.log {

draaien 5

maat 1 k

kopiëren

zijn root adm

}

Voer de volgende opdracht uit om de grootte van het bestand “test.log” te controleren:

$ ls -l / was / loggen / test.log

Voer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.

$ sudo logroteren / enz / tmp / logrotate.conf

Voer de volgende opdracht opnieuw uit om de grootte van het bestand “test.log” te controleren na het uitvoeren van de opdracht “logrotate”:

$ ls -l / was / loggen / test.log

De oorspronkelijke bestandsgrootte wordt 0 na het uitvoeren van de opdracht “logrotate” voor de copytruncate-instelling.

Voorbeeld 3: Gebruik van Logrotate Compress

Maak of wijzig het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen om het gebruik van het kompres te tonen. Volgens de nieuwe instellingen maakt logrotate een gecomprimeerd bestand van het originele bestand.

/ was / loggen / test.log {

draaien 5

maat 1 k

samendrukken

creëren 770 root adm

}

Voer de volgende opdracht uit om de lijst met bestanden en mappen van “/var/log” te controleren:

$ ls / was / loggen /

Voer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.

$ sudo logroteren / enz / tmp / logrotate.conf

Voer de volgende opdracht opnieuw uit om de lijst met bestanden en mappen van “/var/log” te controleren:

$ ls / was / loggen /

Het gecomprimeerde bestand van het bestand “test.log” wordt gemaakt met de naam “test.log.1.gz” en het originele bestand wordt verwijderd.

Voorbeeld 4: Gebruik van Logrotate Dateext

Maak of wijzig het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen om het gebruik van dateext te tonen. Volgens de nieuwe instellingen maakt logrotate een gecomprimeerd bestand van het originele bestand met de datumwaarde.

was / loggen / test.log {

zijn root adm

draaien 5

maat 1 k

samendrukken

creëren 770 root adm

datumtekst

}

Voer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.

$ sudo logroteren / enz / tmp / logrotate.conf

Voer de volgende opdracht uit om de lijst met bestanden en mappen van “/var/log” te controleren:

$ ls -l / was / loggen /

Het gecomprimeerde bestand van het bestand “test.log” wordt gemaakt met de naam “test.log.20240129.gz” en het originele bestand wordt verwijderd.

Voorbeeld 5: Gebruik van Logrotate Maxage

Maak of wijzig het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen om het gebruik van de maxage te tonen. Volgens de instellingen houdt logrotate vijf logvermeldingen bij als de grootte van het logbestand na één dag groter is dan 1K.

/ was / loggen / test.log {

zijn root adm

draaien 5

maat 1 k

samendrukken

maximaal 1

}

Voer de volgende opdracht “logrotate” uit om de uitvoer op te slaan in een ander logbestand met de naam “out.log”:

$ sudo logroteren -S = / was / loggen / uit.log / enz / tmp / logrotate.conf

Volgens de volgende uitvoer wordt het bestand “out.log” gemaakt na het uitvoeren van de opdracht “logrotate”:

Voorbeeld 6: Gebruik van Logrotate Missingok

Maak of wijzig het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen. Hier bestaat het logbestand “testfile.log” niet in de map “/var/log”.

/ was / loggen / testbestand.log {

zijn root adm

draaien 5

maat 1 k

samendrukken

}

Er wordt een foutmelding afgedrukt na het uitvoeren van het commando “logrotate”.

Voeg de instelling “missingok” toe aan het logrotate-configuratiebestand en voer de opdracht “logrotate” opnieuw uit. Er wordt geen fout afgedrukt voor het ontbrekende logbestand.

Voorbeeld 7: Gebruik van Logrotate Prerotate

Maak een Bash-bestand met de naam “test.sh” met het volgende script dat een eenvoudig bericht afdrukt. Het bestand wordt in dit logrotate-voorbeeld gebruikt om het gebruik van de prerotate in het logrotate-configuratiebestand te tonen.

test.sh



#!/bin/bash

echo 'logrotate voorbeelden...'

Nadat u het bestand hebt gemaakt, voert u de volgende opdracht uit om de uitvoeringsrechten van dit bestand voor alle gebruikers in te stellen:

$ chmod a+x / thuis / begrip / test.sh

Maak of wijzig nu het bestand “/etc/tmp/logrotate.conf” met de volgende instellingen. Volgens de instellingen houdt logrotate vijf logvermeldingen bij als de grootte van het logbestand groter is dan 1K en het bestand “test.sh” wordt uitgevoerd vóór de rotatie.

/ was / loggen / test.log {

zijn root adm

draaien 5

maat 1 k

voorgedraaid

/ thuis / begrip / test.sh

eindscript

}

De uitvoer van het bestand “test.sh” wordt weergegeven na het uitvoeren van de opdracht “logrotate”:

Conclusie

De verschillende toepassingen van de opdracht “logrotate” worden in deze zelfstudie getoond aan de hand van meerdere voorbeelden die de Linux-gebruiker zullen helpen de toepassingen van de opdracht te leren kennen en de logbestanden op de juiste manier te beheren.