Logrotate er et kommandolinjeverktøy i Linux for å administrere loggoppføringene. Dette verktøyet hjelper til med å utføre forskjellige typer oppgaver på loggoppføringer av administratoren, som å begrense de roterte loggfilene, komprimere de roterte loggfilene, slette unødvendige loggfilene, utføre det spesielle shell-skriptet basert på loggfilene, etc. Bruksområdene av 'logrorate'-kommandoen for å administrere loggfilene på forskjellige måter, vises i denne opplæringen ved hjelp av flere eksempler.
Sjekk den installerte Logrotate-versjonen
Kommandoen 'logrotate' er installert som standard i den nye versjonen av Ubuntu-operativsystemet. Kjør følgende kommando for å sjekke den installerte versjonen av 'logrotate'-kommandoen:
$ logrotere --versjon
Loggoppføringene til de forskjellige applikasjonene lagres som standard i mappen '/var/log'. Følgende lignende innhold vises hvis du sjekker innholdet i mappen.
$ ls / var / Logg
Still inn 'Logrotate'-konfigurasjonen
Innstillingsverdi | Hensikt |
daglig/ukentlig/månedlig/årlig | Den definerer varigheten for å rotere loggene. |
rotere nummer | Den definerer antall filer som skal beholdes før de gamle loggfilene fjernes. |
komprimere | Den brukes til å komprimere loggfilene. |
compresscmd | Den brukes til å angi 'komprimere'-kommandoen. gzip er standardkommandoen. |
uncompresscmd | Den brukes til å angi 'uncompress'-kommandoen. Gunzip er standardkommandoen. |
forsinkelseskomprimering | Den brukes til å forsinke komprimeringsprosessen av loggfilene. |
varsel tom | Den brukes til å ikke rotere den tomme filen. |
jeg savner | Hvis det er satt, genereres det ingen feil for de manglende loggfilene. |
størrelse | Den brukes til å sette grensen for å begynne å rotere loggfilene. |
dateext | Den brukes til å legge til en datoverdi som et suffiks til den roterende filen. |
copytruncate | Den brukes til å lage en kopi av originalfilen. |
forhåndsrotert | Den brukes til å kjøre et skript før loggfilene roteres. |
etterrotere | Den brukes til å kjøre et skript etter å ha rotert loggfilene. |
skape | Den brukes til å lage loggfilene med et root-privilegium. |
Syntaks:
Syntaksen til 'logrotate'-kommandoen er gitt som følger:
logrotere [ ALTERNATIV ] config_file_path
Ulike typer alternativer kan brukes til forskjellige formål med 'logrotate'-kommandoen.
Loggroter alternativer
Noen nyttige alternativer for 'logrotate'-kommandoen er nevnt i følgende:
-f, –kraft | Den brukes til å gjøre rotasjonen kraftig når det er nødvendig. |
-d, –feilsøke | Den brukes til å aktivere feilsøkingsmodusen under rotasjonen. |
-m, –mail |
Den brukes til å sende en e-post under rotasjonen. |
-s, –stat |
Den brukes til alternative tilstandsfiler. |
-bruk | Den brukes til å skrive ut bruksinformasjonen. |
-?, -hjelp | Den brukes til å skrive ut hjelpemeldinger. |
-v, –verbose | Den brukes til å skrive ut i detaljert modus. |
Loggroter konfigurasjonsfil
Hovedkonfigurasjonsfilen for logrotate er plassert på '/etc/logrotate.conf'-plasseringen. Kjør følgende kommando for å åpne filen i nano-editoren:
$ nano / etc / logrotate.confStandardinnstillingen for 'logrotate'-kommandoen vises i 'logrotate.conf'-filen. 'inkluder'-direktivet brukes i filen for å hente konfigurasjonen som ligger i '/etc/logrotate.d'-katalogen.
Eksempel 1: Lag en enkel loggrotert konfigurasjonsfil
Opprett en eksempelloggfil kalt '/var/log/test.log' med eksempelloggdataene. Kjør følgende kommando for å åpne nano-editoren for å lage en ny 'logrotate.conf'-fil i mappen '/etc/tmp'. Opprett mappen '/tmp' med root-privilegier hvis den ikke er opprettet før.
$ nano / etc / tmp / logrotate.confLegg til følgende innhold i filen for '/var/log/test.log'-filen. I henhold til innstillingen vil 'test.log'-filen roteres daglig hvis filstørrelsen overstiger 5K:
/ var / Logg / test.log {daglig
størrelse 5K
hans root adm
}
Kjør følgende kommando for å sjekke størrelsen på loggfilen:
$ ls -l / var / Logg / test.logKjør 'logrotate'-kommandoen etter å ha opprettet konfigurasjonsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKjør følgende kommando igjen for å sjekke størrelsen på loggfilen etter å ha utført kommandoen 'logrotate':
$ ls -l / var / Logg / test.logStørrelsen på 'test.log'-filen er 1K+. Så ingen rotasjon utføres basert på konfigurasjonsinnstillingen.
Endre størrelsesverdien til 1K i '/etc/tmp/logrotate.conf'-filen og kjør 'ls'-kommandoen på nytt for å sjekke filstørrelsen til '/var/log/test.log'. I henhold til utdata blir loggfilen rotert og slettet fordi størrelsesgrensen er overskredet.
Eksempel 2: Bruk av Logrotate Copytruncate
Opprett eller modifiser filen '/etc/tmp/logrotate.conf' med følgende innstillinger for å vise bruken av copytruncate. I henhold til nye innstillinger, oppretter logrotate en kopi av den originale filen ved å gjøre den opprinnelige filstørrelsen til null.
/ var / Logg / test.log {rotere 5
størrelse 1 k
copytruncate
hans root adm
}
Kjør følgende kommando for å sjekke størrelsen på 'test.log'-filen:
$ ls -l / var / Logg / test.logKjør 'logrotate'-kommandoen etter å ha opprettet konfigurasjonsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKjør følgende kommando igjen for å sjekke størrelsen på 'test.log'-filen etter å ha utført kommandoen 'logrotate':
$ ls -l / var / Logg / test.logDen opprinnelige filstørrelsen blir 0 etter å ha utført kommandoen 'logrotate' for copytruncate-innstillingen.
Eksempel 3: Bruk av Logrotate Compress
Opprett eller modifiser '/etc/tmp/logrotate.conf'-filen med følgende innstillinger for å vise bruken av komprimeringen. I henhold til de nye innstillingene, oppretter logrotate en komprimeringsfil av den opprinnelige filen.
/ var / Logg / test.log {rotere 5
størrelse 1 k
komprimere
skape 770 root adm
}
Kjør følgende kommando for å sjekke listen over filene og mappene til '/var/log':
$ ls / var / Logg /Kjør 'logrotate'-kommandoen etter å ha opprettet konfigurasjonsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKjør følgende kommando igjen for å sjekke listen over filene og mappene til '/var/log':
$ ls / var / Logg /Den komprimerte filen til 'test.log'-filen opprettes med navnet 'test.log.1.gz', og den originale filen fjernes.
Eksempel 4: Bruk av Logrotate Dateext
Opprett eller modifiser '/etc/tmp/logrotate.conf'-filen med følgende innstillinger for å vise bruken av dateext. I henhold til de nye innstillingene oppretter logrotate en komprimeringsfil av den opprinnelige filen med datoverdien.
var / Logg / test.log {hans root adm
rotere 5
størrelse 1 k
komprimere
skape 770 root adm
dateext
}
Kjør 'logrotate'-kommandoen etter å ha opprettet konfigurasjonsfilen.
$ sudo logrotere / etc / tmp / logrotate.confKjør følgende kommando for å sjekke listen over filene og mappene til '/var/log':
$ ls -l / var / Logg /Den komprimerte filen til 'test.log'-filen opprettes med navnet 'test.log.20240129.gz', og den opprinnelige filen fjernes.
Eksempel 5: Bruk av Logrotate Maxage
Opprett eller modifiser filen '/etc/tmp/logrotate.conf' med følgende innstillinger for å vise bruken av maks. I henhold til innstillingene beholder logrotate fem loggoppføringer hvis størrelsen på loggfilen overstiger 1K etter en dag.
/ var / Logg / test.log {hans root adm
rotere 5
størrelse 1 k
komprimere
maks 1
}
Kjør følgende 'logrotate'-kommando for å lagre utdataene i en annen loggfil kalt 'out.log':
$ sudo logrotere -s = / var / Logg / ut.logg / etc / tmp / logrotate.confI henhold til følgende utdata, opprettes 'out.log'-filen etter å ha utført kommandoen 'logrotate':
Eksempel 6: Bruk av Logrotate Missingok
Opprett eller modifiser filen '/etc/tmp/logrotate.conf' med følgende innstillinger. Her eksisterer ikke loggfilen 'testfile.log' i mappen '/var/log'.
/ var / Logg / testfil.log {hans root adm
rotere 5
størrelse 1 k
komprimere
}
En feilmelding skrives ut etter å ha utført kommandoen 'logrotate'.
Legg til 'missingok'-innstillingen i logrotate-konfigurasjonsfilen og kjør kommandoen 'logrotate' igjen. Ingen feil skrives ut for den manglende loggfilen.
Eksempel 7: Bruk av Logrotate Prerotate
Lag en Bash-fil med navnet 'test.sh' med følgende skript som skriver ut en enkel melding. Filen brukes i dette logrotate-eksemplet for å vise bruken av prerotate i logrotate-konfigurasjonsfilen.
test.sh#!/bin/bash
ekko 'logroter eksempler ...'
Etter å ha opprettet filen, kjør følgende kommando for å angi utførelsestillatelsen for denne filen for alle brukere:
$ chmod a+x / hjem / forståelse / test.shOpprett eller modifiser nå filen '/etc/tmp/logrotate.conf' med følgende innstillinger. I henhold til innstillingene beholder logrotate fem loggoppføringer hvis størrelsen på loggfilen overstiger 1K og 'test.sh'-filen kjøres før rotasjonen.
/ var / Logg / test.log {hans root adm
rotere 5
størrelse 1 k
forhåndsrotert
/ hjem / forståelse / test.sh
sluttskrift
}
Utdataene fra 'test.sh'-filen vises etter å ha utført kommandoen 'logrotate':
Konklusjon
De ulike bruksområdene for 'logrotate'-kommandoen vises i denne opplæringen ved å bruke flere eksempler som vil hjelpe Linux-brukeren å kjenne til bruken av kommandoen og administrere loggfilene riktig.