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.confDe 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.confVoeg 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.logVoer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.
$ sudo logroteren / enz / tmp / logrotate.confVoer 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.logDe 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.logVoer de opdracht “logrotate” uit nadat u het configuratiebestand hebt gemaakt.
$ sudo logroteren / enz / tmp / logrotate.confVoer 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.logDe 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.confVoer 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.confVoer 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.confVolgens 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.shMaak 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.