Logrotate je orodje ukazne vrstice Linuxa za upravljanje vnosov v dnevnik. To orodje pomaga skrbniku izvajati različne vrste nalog na vnosih v dnevnik, kot je omejevanje zasukanih dnevniških datotek, stiskanje zasukanih dnevniških datotek, brisanje nepotrebnih dnevniških datotek, izvajanje določenega lupinskega skripta na podlagi dnevniških datotek itd. ukaza »logrorate« za upravljanje dnevniških datotek na različne načine so prikazani v tej vadnici z več primeri.
Preverite nameščeno različico Logrotate
Ukaz “logrotate” je privzeto nameščen v novi različici operacijskega sistema Ubuntu. Zaženite naslednji ukaz, da preverite nameščeno različico ukaza “logrotate”:
$ logrotirati --različica
Dnevniški vnosi različnih aplikacij so privzeto shranjeni v mapi »/var/log«. Če preverite vsebino mape, se prikaže naslednja podobna vsebina.
$ ls / je bil / dnevnik
Nastavite konfiguracijo 'Logrotate'.
Vrednost nastavitve | Namen |
dnevno/tedensko/mesečno/letno | Določa časovno trajanje za vrtenje dnevnikov. |
zavrti številko | Določa število datotek, ki bodo shranjene pred odstranitvijo starih dnevniških datotek. |
stisniti | Uporablja se za stiskanje dnevniških datotek. |
stisni cmd | Uporablja se za nastavitev ukaza 'stisni'. Gzip je privzeti ukaz. |
uncompresscmd | Uporablja se za nastavitev ukaza “uncompress”. Gunzip je privzeti ukaz. |
delaycompress | Uporablja se za odložitev postopka stiskanja dnevniških datotek. |
obvestilo prazno | Uporablja se, da se prazna datoteka ne vrti. |
pogrešam | Če je nastavljen, se za manjkajoče dnevniške datoteke ne ustvari nobena napaka. |
velikost | Uporablja se za nastavitev omejitve za začetek kroženja dnevniških datotek. |
dateext | Uporablja se za dodajanje datumske vrednosti kot pripone datoteke za sukanje. |
copytruncate | Uporablja se za ustvarjanje kopije izvirne datoteke. |
prerotated | Uporablja se za zagon skripta pred rotacijo dnevniških datotek. |
postrotirati | Uporablja se za zagon skripta po rotiranju dnevniških datotek. |
ustvariti | Uporablja se za ustvarjanje dnevniških datotek s korenskimi pravicami. |
Sintaksa:
Sintaksa ukaza “logrotate” je podana takole:
logrotirati [ MOŽNOST ] config_file_path
Različne vrste možnosti lahko uporabite za različne namene z ukazom “logrotate”.
Možnosti Logrotate
Nekatere uporabne možnosti ukaza “logrotate” so omenjene v nadaljevanju:
-f, – sila | Uporablja se za močno vrtenje, ko je to potrebno. |
-d, –odpravljanje napak | Uporablja se za omogočanje načina za odpravljanje napak med rotacijo. |
-m, –mail |
Uporablja se za pošiljanje e-pošte med rotacijo. |
-s, –state |
Uporablja se za alternativne datoteke stanja. |
– uporaba | Uporablja se za tiskanje podatkov o uporabi. |
–?, –pomoč | Uporablja se za tiskanje sporočil pomoči. |
-v, –besedno | Uporablja se za tiskanje v verbose načinu. |
Konfiguracijska datoteka Logrotate
Glavna konfiguracijska datoteka logrotate se nahaja na mestu »/etc/logrotate.conf«. Zaženite naslednji ukaz, da odprete datoteko v urejevalniku nano:
$ nano / itd / logrotate.confPrivzeta nastavitev ukaza “logrotate” je prikazana v datoteki “logrotate.conf”. Direktiva »include« se v datoteki uporablja za pridobitev konfiguracije, ki se nahaja v imeniku »/etc/logrotate.d«.
Primer 1: Ustvarite preprosto konfiguracijsko datoteko Logrotate
Ustvarite vzorčno datoteko dnevnika z imenom »/var/log/test.log« z vzorčnimi dnevniškimi podatki. Zaženite naslednji ukaz, da odprete urejevalnik nano, da ustvarite novo datoteko »logrotate.conf« na lokaciji mape »/etc/tmp«. Ustvarite mapo »/tmp« s korenskimi pravicami, če ni bila ustvarjena prej.
$ nano / itd / tmp / logrotate.confDodajte naslednjo vsebino v datoteko za datoteko »/var/log/test.log«. V skladu z nastavitvijo se bo datoteka »test.log« vsak dan vrtela, če velikost datoteke presega 5K:
/ je bil / dnevnik / test.log {dnevno
velikost 5K
njegov koren adm
}
Zaženite naslednji ukaz, da preverite velikost dnevniške datoteke:
$ ls -l / je bil / dnevnik / test.logPo ustvarjanju konfiguracijske datoteke zaženite ukaz “logrotate”.
$ sudo logrotirati / itd / tmp / logrotate.confPonovno zaženite naslednji ukaz, da preverite velikost dnevniške datoteke po izvedbi ukaza “logrotate”:
$ ls -l / je bil / dnevnik / test.logVelikost datoteke »test.log« je 1K+. Torej se na podlagi konfiguracijske nastavitve ne izvede rotacija.
Spremenite vrednost velikosti na 1K v datoteki »/etc/tmp/logrotate.conf« in znova zaženite ukaz »ls«, da preverite velikost datoteke »/var/log/test.log«. Glede na izhod se dnevniška datoteka zavrti in izbriše, ker je presežena omejitev velikosti.
Primer 2: Uporaba Logrotate Copytruncate
Ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami, da prikažete uporabo funkcije copytruncate. V skladu z novimi nastavitvami logrotate ustvari kopijo izvirne datoteke tako, da velikost izvirne datoteke ponastavi na nič.
/ je bil / dnevnik / test.log {vrteti 5
velikost 1 k
copytruncate
njegov koren adm
}
Zaženite naslednji ukaz, da preverite velikost datoteke »test.log«:
$ ls -l / je bil / dnevnik / test.logPo ustvarjanju konfiguracijske datoteke zaženite ukaz “logrotate”.
$ sudo logrotirati / itd / tmp / logrotate.confZnova zaženite naslednji ukaz, da preverite velikost datoteke »test.log« po izvedbi ukaza »logrotate«:
$ ls -l / je bil / dnevnik / test.logIzvirna velikost datoteke postane 0 po izvedbi ukaza »logrotate« za nastavitev copytruncate.
Primer 3: Uporaba Logrotate Compress
Ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami, da prikažete uporabo stiskanja. V skladu z novimi nastavitvami logrotate ustvari stisnjeno datoteko izvirne datoteke.
/ je bil / dnevnik / test.log {vrteti 5
velikost 1 k
stisniti
ustvariti 770 koren adm
}
Zaženite naslednji ukaz, da preverite seznam datotek in map »/var/log«:
$ ls / je bil / dnevnik /Po ustvarjanju konfiguracijske datoteke zaženite ukaz “logrotate”.
$ sudo logrotirati / itd / tmp / logrotate.confPonovno zaženite naslednji ukaz, da preverite seznam datotek in map »/var/log«:
$ ls / je bil / dnevnik /Stisnjena datoteka datoteke »test.log« se ustvari z imenom »test.log.1.gz« in izvirna datoteka se odstrani.
Primer 4: Uporaba Logrotate Dateext
Ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami, da prikažete uporabo dateext. V skladu z novimi nastavitvami logrotate ustvari stisnjeno datoteko izvirne datoteke z datumsko vrednostjo.
je bil / dnevnik / test.log {njegov koren adm
vrteti 5
velikost 1 k
stisniti
ustvariti 770 koren adm
dateext
}
Po ustvarjanju konfiguracijske datoteke zaženite ukaz “logrotate”.
$ sudo logrotirati / itd / tmp / logrotate.confZaženite naslednji ukaz, da preverite seznam datotek in map »/var/log«:
$ ls -l / je bil / dnevnik /Stisnjena datoteka datoteke »test.log« se ustvari z imenom »test.log.20240129.gz« in izvirna datoteka se odstrani.
Primer 5: Uporaba zdravila Logrotate Maxage
Ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami, da prikažete uporabo maxage. V skladu z nastavitvami logrotate hrani pet vnosov v dnevnik, če velikost dnevniške datoteke po enem dnevu preseže 1K.
/ je bil / dnevnik / test.log {njegov koren adm
vrteti 5
velikost 1 k
stisniti
maxage 1
}
Zaženite naslednji ukaz »logrotate«, da shranite izhod v drugo datoteko dnevnika z imenom »out.log«:
$ sudo logrotirati -s = / je bil / dnevnik / out.log / itd / tmp / logrotate.confV skladu z naslednjim rezultatom se datoteka »out.log« ustvari po izvedbi ukaza »logrotate«:
Primer 6: Uporaba Logrotate Missingok
Ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami. Tu dnevniška datoteka »testfile.log« ne obstaja v mapi »/var/log«.
/ je bil / dnevnik / testfile.log {njegov koren adm
vrteti 5
velikost 1 k
stisniti
}
Po izvedbi ukaza “logrotate” se natisne sporočilo o napaki.
Dodajte nastavitev »missingok« v konfiguracijsko datoteko logrotate in znova zaženite ukaz »logrotate«. Za manjkajočo datoteko dnevnika ni natisnjena nobena napaka.
Primer 7: Uporaba Logrotate Prerotate
Ustvarite datoteko Bash z imenom 'test.sh' z naslednjim skriptom, ki natisne preprosto sporočilo. Datoteka je uporabljena v tem primeru logrotate za prikaz uporabe predrotacije v konfiguracijski datoteki logrotate.
test.sh#!/bin/bash
odmev 'logrotiraj primere ...'
Ko ustvarite datoteko, zaženite naslednji ukaz, da nastavite dovoljenje za izvajanje te datoteke za vse uporabnike:
$ chmod a+x / domov / razumevanje / test.shZdaj ustvarite ali spremenite datoteko »/etc/tmp/logrotate.conf« z naslednjimi nastavitvami. V skladu z nastavitvami logrotate hrani pet vnosov v dnevnik, če velikost datoteke dnevnika presega 1K in se datoteka »test.sh« izvede pred rotacijo.
/ je bil / dnevnik / test.log {njegov koren adm
vrteti 5
velikost 1 k
prerotated
/ domov / razumevanje / test.sh
endscript
}
Izhod datoteke »test.sh« je prikazan po izvedbi ukaza »logrotate«:
Zaključek
Različne uporabe ukaza »logrotate« so prikazane v tej vadnici z uporabo več primerov, ki bodo uporabniku Linuxa pomagali poznati uporabo ukaza in pravilno upravljati dnevniške datoteke.