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.confStandardinstä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.confLä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.logKör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.
$ sudo logrotera / etc / tmp / logrotate.confKör följande kommando igen för att kontrollera storleken på loggfilen efter att ha utfört kommandot 'logrotate':
$ ls -l / var / logga / test.logStorleken 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.logKör kommandot 'logrotate' efter att ha skapat konfigurationsfilen.
$ sudo logrotera / etc / tmp / logrotate.confKö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.logDen 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.confKö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.confKö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.confEnligt 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.shSkapa 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.