Logrotate er et kommandolinjeværktøj i Linux til at administrere logposterne. Dette værktøj hjælper med at udføre forskellige typer opgaver på logposter af administratoren, såsom at begrænse de roterede logfiler, komprimere de roterede logfiler, slette de unødvendige logfiler, udføre det særlige shell-script baseret på logfilerne osv. Anvendelser af kommandoen 'logrorate' til at administrere logfilerne på forskellige måder er vist i denne vejledning ved hjælp af flere eksempler.
Tjek den installerede Logrotate-version
Kommandoen 'logrotate' er installeret som standard i den nye version af Ubuntu-operativsystemet. Kør følgende kommando for at kontrollere den installerede version af kommandoen 'logrotate':
$ logrotere --version
Logposterne for de forskellige applikationer gemmes som standard i mappen '/var/log'. Følgende lignende indhold vises, hvis du tjekker indholdet af mappen.
$ ls / var / log
Indstil 'Logrotate'-konfigurationen
Indstillingsværdi | Formål |
dagligt/ugentlig/månedligt/årligt | Det definerer varigheden af, hvor længe logfilerne skal roteres. |
rotere nummer | Det definerer antallet af filer, der vil blive opbevaret, før de gamle logfiler fjernes. |
komprimere | Det bruges til at komprimere logfilerne. |
compresscmd | Den bruges til at indstille kommandoen 'komprimere'. gzip er standardkommandoen. |
uncompresscmd | Den bruges til at indstille kommandoen 'uncompress'. Gunzip er standardkommandoen. |
forsinkelseskomprimering | Det bruges til at forsinke komprimeringsprocessen af logfilerne. |
meddelelse tom | Det bruges til ikke at rotere den tomme fil. |
Jeg mangler | Hvis det er indstillet, genereres der ingen fejl for de manglende logfiler. |
størrelse | Den bruges til at indstille grænsen for at begynde at rotere logfilerne. |
dateext | Det bruges til at tilføje en datoværdi som et suffiks til den roterende fil. |
copytruncate | Det bruges til at oprette en kopi af den originale fil. |
forroteret | Det bruges til at køre et script, før logfilerne roteres. |
efterrotere | Det bruges til at køre et script efter at have roteret logfilerne. |
skab | Det bruges til at oprette logfiler med et root-privilegium. |
Syntaks:
Syntaksen for kommandoen 'logrotate' er givet som følger:
logrotere [ MULIGHED ] config_file_path
Forskellige typer muligheder kan bruges til forskellige formål med kommandoen 'logrotate'.
Logroter indstillinger
Nogle nyttige muligheder for kommandoen 'logrotate' er nævnt i det følgende:
-f, –kraft | Det bruges til at udføre rotationen kraftigt, når det er nødvendigt. |
-d, -fejlfinde | Det bruges til at aktivere fejlfindingstilstanden under rotationen. |
-m, –mail |
Den bruges til at sende en e-mail under rotationen. |
-s, –state |
Det bruges til alternative tilstandsfiler. |
-brug | Det bruges til at udskrive brugsoplysningerne. |
-?, -Hjælp | Det bruges til at udskrive hjælpemeddelelserne. |
-v, –udtalt | Det bruges til at udskrive i verbose tilstand. |
Logroter konfigurationsfil
Den primære logrotate-konfigurationsfil er placeret på “/etc/logrotate.conf”-placeringen. Kør følgende kommando for at åbne filen i nano-editoren:
$ nano / etc / logrotate.confStandardindstillingen for kommandoen 'logrotate' vises i filen 'logrotate.conf'. 'include'-direktivet bruges i filen til at hente den konfiguration, der er placeret i mappen '/etc/logrotate.d'.
Eksempel 1: Opret en simpel Logrotate-konfigurationsfil
Opret en prøvelogfil med navnet '/var/log/test.log' med prøvelogdataene. Kør følgende kommando for at åbne nano-editoren for at oprette en ny 'logrotate.conf'-fil i mappens '/etc/tmp'-placering. Opret mappen '/tmp' med root-rettigheder, hvis den ikke er oprettet før.
$ nano / etc / tmp / logrotate.confTilføj følgende indhold til filen for filen '/var/log/test.log'. Ifølge indstillingen vil 'test.log'-filen blive roteret dagligt, hvis filstørrelsen overstiger 5K:
/ var / log / test.log {daglige
størrelse 5K
hans rod adm
}
Kør følgende kommando for at kontrollere størrelsen på logfilen:
$ ls -l / var / log / test.logKør kommandoen 'logrotate' efter oprettelse af konfigurationsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKør følgende kommando igen for at kontrollere størrelsen på logfilen efter at have udført kommandoen 'logrotate':
$ ls -l / var / log / test.logStørrelsen på 'test.log'-filen er 1K+. Så der udføres ingen rotation baseret på konfigurationsindstillingen.
Skift størrelsesværdien til 1K i filen '/etc/tmp/logrotate.conf', og kør kommandoen 'ls' igen for at kontrollere filstørrelsen for '/var/log/test.log'. Ifølge outputtet roteres og slettes logfilen, fordi størrelsesgrænsen er overskredet.
Eksempel 2: Brug af Logrotate Copytruncate
Opret eller modificer filen '/etc/tmp/logrotate.conf' med følgende indstillinger for at vise brugen af copytruncate. Ifølge de nye indstillinger opretter logrotate en kopi af den originale fil ved at gøre den originale filstørrelse til nul.
/ var / log / test.log {rotere 5
størrelse 1 k
copytruncate
hans rod adm
}
Kør følgende kommando for at kontrollere størrelsen på filen 'test.log':
$ ls -l / var / log / test.logKør kommandoen 'logrotate' efter oprettelse af konfigurationsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKør følgende kommando igen for at kontrollere størrelsen på filen 'test.log' efter at have udført kommandoen 'logrotate':
$ ls -l / var / log / test.logDen originale filstørrelse bliver 0 efter at have udført kommandoen 'logrotate' for indstillingen copytruncate.
Eksempel 3: Brug af Logrotate Compress
Opret eller modificer filen '/etc/tmp/logrotate.conf' med følgende indstillinger for at vise brugen af komprimeringen. Ifølge de nye indstillinger opretter logrotate en komprimeringsfil af den originale fil.
/ var / log / test.log {rotere 5
størrelse 1 k
komprimere
skab 770 rod adm
}
Kør følgende kommando for at kontrollere listen over filer og mapper i '/var/log':
$ ls / var / log /Kør kommandoen 'logrotate' efter oprettelse af konfigurationsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKør følgende kommando igen for at kontrollere listen over filer og mapper i '/var/log':
$ ls / var / log /Den komprimerede fil i 'test.log'-filen oprettes med navnet 'test.log.1.gz', og den originale fil fjernes.
Eksempel 4: Brug af Logrotate Dateext
Opret eller modificer filen '/etc/tmp/logrotate.conf' med følgende indstillinger for at vise brugen af dateext. Ifølge de nye indstillinger opretter logrotate en komprimeringsfil af den originale fil med datoværdien.
var / log / test.log {hans rod adm
rotere 5
størrelse 1 k
komprimere
skab 770 rod adm
dateext
}
Kør kommandoen 'logrotate' efter oprettelse af konfigurationsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKør følgende kommando for at kontrollere listen over filer og mapper i '/var/log':
$ ls -l / var / log /Den komprimerede fil i 'test.log'-filen oprettes med navnet 'test.log.20240129.gz', og den originale fil fjernes.
Eksempel 5: Brug af Logrotate Maxage
Opret eller modificer filen '/etc/tmp/logrotate.conf' med følgende indstillinger for at vise brugen af maxage. Ifølge indstillingerne beholder logrotate fem logposter, hvis størrelsen af logfilen overstiger 1K efter en dag.
/ var / log / test.log {hans rod adm
rotere 5
størrelse 1 k
komprimere
maxage 1
}
Kør følgende 'logrotate'-kommando for at gemme outputtet i en anden logfil ved navn 'out.log':
$ sudo logrotere -s = / var / log / ud.log / etc / tmp / logrotate.confIfølge følgende output oprettes 'out.log'-filen efter at have udført kommandoen 'logrotate':
Eksempel 6: Brug af Logrotate Missingok
Opret eller rediger filen '/etc/tmp/logrotate.conf' med følgende indstillinger. Her findes 'testfile.log'-logfilen ikke i mappen '/var/log'.
/ var / log / testfil.log {hans rod adm
rotere 5
størrelse 1 k
komprimere
}
En fejlmeddelelse udskrives efter udførelse af kommandoen 'logrotate'.
Tilføj 'missingok'-indstillingen i logrotate-konfigurationsfilen, og kør kommandoen 'logrotate' igen. Der udskrives ingen fejl for den manglende logfil.
Eksempel 7: Brug af Logrotate Prerotate
Opret en Bash-fil med navnet 'test.sh' med følgende script, der udskriver en simpel besked. Filen bruges i dette logrotate eksempel til at vise brugen af prerotate i logrotate konfigurationsfilen.
test.sh#!/bin/bash
ekko 'logrotere eksempler...'
Når du har oprettet filen, skal du køre følgende kommando for at indstille udførelsestilladelsen for denne fil for alle brugere:
$ chmod a+x / hjem / forståelse / test.shOpret eller rediger nu filen '/etc/tmp/logrotate.conf' med følgende indstillinger. Ifølge indstillingerne beholder logrotate fem logposter, hvis størrelsen af logfilen overstiger 1K, og 'test.sh'-filen udføres før rotationen.
/ var / log / test.log {hans rod adm
rotere 5
størrelse 1 k
forroteret
/ hjem / forståelse / test.sh
slutskrift
}
Outputtet af 'test.sh'-filen vises efter udførelse af 'logrotate'-kommandoen:
Konklusion
De forskellige anvendelser af kommandoen 'logrotate' er vist i denne tutorial ved hjælp af flere eksempler, der vil hjælpe Linux-brugeren til at kende brugen af kommandoen og administrere logfilerne korrekt.