Linux Logrotate Exempel

Linux Logrotate Exempel



Logginformation är en mycket viktig del av alla operativsystem för att diagnostisera problemet med alla program som körs och loggposterna hjälper till att ta reda på lösningen på problemet. De flesta av applikationerna i operativsystemet Linux genererar loggen och systemadministratören får den nödvändiga informationen om applikationen från loggposterna. Loggposterna skapar dock ibland problem eftersom storleken på posterna blir större med tiden. Så loggposterna krävs för att hantera.

Logrotate är ett kommandoradsverktyg i Linux för att hantera loggposterna. Detta verktyg hjälper till att utföra olika typer av uppgifter på loggposter av administratören, såsom att begränsa de roterade loggfilerna, komprimera de roterade loggfilerna, ta bort onödiga loggfiler, exekvera det specifika skalskriptet baserat på loggfilerna, etc. Användningsområden av kommandot 'logrorate' för att hantera loggfilerna på olika sätt visas i den här handledningen med flera exempel.

Kontrollera den installerade Logrotate-versionen

Kommandot 'logrotate' är installerat som standard i den nya versionen av operativsystemet Ubuntu. Kör följande kommando för att kontrollera den installerade versionen av kommandot 'logrotate':







$ logrotera --version



Loggposterna för de olika programmen lagras som standard i mappen '/var/log'. Följande liknande innehåll visas om du kontrollerar innehållet i mappen.



$ ls / var / logga





Ställ in 'Logrotate'-konfigurationen

Inställningsvärde Syfte
dagligen/veckovis/månadsvis/årlig Den definierar tidslängden för att rotera loggarna.
rotera nummer Den definierar antalet filer som kommer att behållas innan de gamla loggfilerna tas bort.
komprimera Den används för att komprimera loggfilerna.
compresscmd Det används för att ställa in kommandot 'komprimera'. gzip är standardkommandot.
uncompresscmd Det används för att ställa in kommandot 'uncompress'. Gunzip är standardkommandot.
delaycompress Den används för att fördröja komprimeringsprocessen av loggfilerna.
meddelande tom Den används för att inte rotera den tomma filen.
Jag saknar Om den är inställd genereras inget fel för de saknade loggfilerna.
storlek Den används för att ställa in gränsen för att börja rotera loggfilerna.
dateext Den används för att lägga till ett datumvärde som ett suffix till den roterande filen.
copytruncate Den används för att skapa en kopia av originalfilen.
förroterad Det används för att köra ett skript innan loggfilerna roteras.
efterrotera Det används för att köra ett skript efter att ha roterat loggfilerna.
skapa Den används för att skapa loggfiler med root-privilegium.

Syntax:

Syntaxen för kommandot 'logrotate' ges enligt följande:



logrotera [ ALTERNATIV ] config_file_path

Olika typer av alternativ kan användas för olika ändamål med kommandot 'logrotate'.

Loggrotera alternativ

Några användbara alternativ för kommandot 'logrotate' nämns i följande:

-f, –kraft Den används för att göra rotationen kraftfullt när det behövs.
-d, –felsöka Den används för att aktivera felsökningsläget under rotationen.
-m, –mail Den används för att skicka ett e-postmeddelande under rotationen.
-s, –tillstånd Den används för alternativa tillståndsfiler.
-användande Den används för att skriva ut användningsinformationen.
-?, -hjälp Den används för att skriva ut hjälpmeddelanden.
-v, –omfattande Den används för att skriva ut i utförligt läge.

Loggrotera konfigurationsfil

Den huvudsakliga logrotate-konfigurationsfilen finns på '/etc/logrotate.conf'-platsen. Kör följande kommando för att öppna filen i nanoredigeraren:

$ nano / etc / logrotate.conf

Standardinställningen för kommandot 'logrotate' visas i filen 'logrotate.conf'. Direktivet 'inkludera' används i filen för att hämta konfigurationen som finns i katalogen '/etc/logrotate.d'.

Exempel 1: Skapa en enkel Logrotate-konfigurationsfil

Skapa en exempelloggfil med namnet '/var/log/test.log' med exempelloggdata. Kör följande kommando för att öppna nanoredigeraren för att skapa en ny 'logrotate.conf'-fil i mappen '/etc/tmp'. Skapa mappen '/tmp' med root-privilegier om den inte har skapats tidigare.

$ nano / etc / tmp / logrotate.conf

Lägg till följande innehåll i filen för filen '/var/log/test.log'. Enligt inställningen kommer filen 'test.log' att roteras dagligen om filstorleken överstiger 5K:

/ var / logga / test.log {

dagligen

storlek 5K

hans root adm

}

Kör följande kommando för att kontrollera storleken på loggfilen:

$ ls -l / var / logga / test.log

Kör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.

$ sudo logrotera / etc / tmp / logrotate.conf

Kör följande kommando igen för att kontrollera storleken på loggfilen efter att ha utfört kommandot 'logrotate':

$ ls -l / var / logga / test.log

Storleken på filen 'test.log' är 1K+. Så ingen rotation görs baserat på konfigurationsinställningen.

Ändra storleksvärdet till 1K i filen '/etc/tmp/logrotate.conf' och kör kommandot 'ls' igen för att kontrollera filstorleken för '/var/log/test.log'. Enligt utdata roteras och raderas loggfilen eftersom storleksgränsen överskrids.

Exempel 2: Användning av Logrotate Copytruncate

Skapa eller ändra filen '/etc/tmp/logrotate.conf' med följande inställningar för att visa användningen av copytruncate. Enligt nya inställningar skapar logrotate en kopia av originalfilen genom att göra den ursprungliga filstorleken till noll.

/ var / logga / test.log {

rotera 5

storlek 1 k

copytruncate

hans root adm

}

Kör följande kommando för att kontrollera storleken på filen 'test.log':

$ ls -l / var / logga / test.log

Kör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.

$ sudo logrotera / etc / tmp / logrotate.conf

Kör följande kommando igen för att kontrollera storleken på filen 'test.log' efter att ha utfört kommandot 'logrotate':

$ ls -l / var / logga / test.log

Den ursprungliga filstorleken blir 0 efter att ha utfört kommandot 'logrotate' för copytruncate-inställningen.

Exempel 3: Användning av Logrotate Compress

Skapa eller ändra filen '/etc/tmp/logrotate.conf' med följande inställningar för att visa användningen av komprimeringen. Enligt nya inställningar skapar logrotate en komprimeringsfil av originalfilen.

/ var / logga / test.log {

rotera 5

storlek 1 k

komprimera

skapa 770 root adm

}

Kör följande kommando för att kontrollera listan över filer och mappar för '/var/log':

$ ls / var / logga /

Kör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.

$ sudo logrotera / etc / tmp / logrotate.conf

Kör följande kommando igen för att kontrollera listan över filer och mappar för '/var/log':

$ ls / var / logga /

Den komprimerade filen för 'test.log'-filen skapas med namnet 'test.log.1.gz' och originalfilen tas bort.

Exempel 4: Användning av Logrotate Dateext

Skapa eller ändra filen '/etc/tmp/logrotate.conf' med följande inställningar för att visa användningen av dateext. Enligt de nya inställningarna skapar logrotate en komprimeringsfil av originalfilen med datumvärdet.

var / logga / test.log {

hans root adm

rotera 5

storlek 1 k

komprimera

skapa 770 root adm

dateext

}

Kör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.

$ sudo logrotera / etc / tmp / logrotate.conf

Kör följande kommando för att kontrollera listan över filer och mappar för '/var/log':

$ ls -l / var / logga /

Den komprimerade filen för 'test.log'-filen skapas med namnet 'test.log.20240129.gz' och originalfilen tas bort.

Exempel 5: Användning av Logrotate Maxage

Skapa eller ändra filen '/etc/tmp/logrotate.conf' med följande inställningar för att visa användningen av maxage. Enligt inställningarna behåller logrotate fem loggposter om storleken på loggfilen överstiger 1K efter en dag.

/ var / logga / test.log {

hans root adm

rotera 5

storlek 1 k

komprimera

maxage 1

}

Kör följande 'logrotate'-kommando för att lagra utdata i en annan loggfil med namnet 'out.log':

$ sudo logrotera -s = / var / logga / logga ut / etc / tmp / logrotate.conf

Enligt följande utdata skapas 'out.log'-filen efter att ha utfört kommandot 'logrotate':

Exempel 6: Användning av Logrotate Missingok

Skapa eller ändra filen '/etc/tmp/logrotate.conf' med följande inställningar. Här finns inte loggfilen 'testfile.log' i mappen '/var/log'.

/ var / logga / testfile.log {

hans root adm

rotera 5

storlek 1 k

komprimera

}

Ett felmeddelande skrivs ut efter att ha utfört kommandot 'logrotate'.

Lägg till 'missingok'-inställningen i logrotate-konfigurationsfilen och kör kommandot 'logrotate' igen. Inget fel skrivs ut för den saknade loggfilen.

Exempel 7: Användning av Logrotate Prerotate

Skapa en Bash-fil med namnet 'test.sh' med följande skript som skriver ut ett enkelt meddelande. Filen används i detta logrotate-exempel för att visa användningen av prerotate i logrotate-konfigurationsfilen.

test.sh



#!/bin/bash

eko 'logrotera exempel...'

När du har skapat filen, kör följande kommando för att ställa in körningsbehörigheten för den här filen för alla användare:

$ chmod a+x / Hem / förståelse / test.sh

Skapa eller ändra nu filen '/etc/tmp/logrotate.conf' med följande inställningar. Enligt inställningarna behåller logrotate fem loggposter om storleken på loggfilen överstiger 1K och filen 'test.sh' körs före rotationen.

/ var / logga / test.log {

hans root adm

rotera 5

storlek 1 k

förroterad

/ Hem / förståelse / test.sh

slutskrift

}

Utdata från 'test.sh'-filen visas efter att ha utfört kommandot 'logrotate':

Slutsats

De olika användningarna av kommandot 'logrotate' visas i denna handledning med flera exempel som hjälper Linux-användaren att känna till användningen av kommandot och hantera loggfilerna på rätt sätt.