Logrotate yra „Linux“ komandų eilutės įrankis žurnalo įrašams tvarkyti. Šis įrankis padeda administratoriaus atlikti įvairių tipų žurnalo įrašų užduotis, pvz., apriboti pasuktus žurnalo failus, suspausti pasuktus žurnalo failus, ištrinti nereikalingus žurnalo failus, vykdyti konkretų apvalkalo scenarijų pagal žurnalo failus ir kt. „logorate“ komandos, skirtos įvairiais būdais tvarkyti žurnalo failus, parodyta šioje pamokoje naudojant kelis pavyzdžius.
Patikrinkite įdiegtą Logrotate versiją
Komanda „logrotate“ yra įdiegta pagal numatytuosius nustatymus naujoje „Ubuntu“ operacinės sistemos versijoje. Vykdykite šią komandą, kad patikrintumėte įdiegtą „logrotate“ komandos versiją:
$ log pasukti -- versija
Įvairių programų žurnalo įrašai pagal numatytuosius nustatymus saugomi aplanke „/var/log“. Šis panašus turinys bus rodomas, jei patikrinsite aplanko turinį.
$ ls / buvo / žurnalas
Nustatykite „Logrotate“ konfigūraciją
Nustatymo vertė | Tikslas |
kasdien / kas savaitę / kas mėnesį / kasmet | Jis apibrėžia žurnalų pasukimo trukmę. |
pasukti skaičių | Jis apibrėžia failų, kurie bus saugomi prieš pašalinant senus žurnalo failus, skaičių. |
suspausti | Jis naudojamas žurnalo failams suspausti. |
suspausti cmd | Jis naudojamas komandai „suspausti“ nustatyti. Gzip yra numatytoji komanda. |
išspausticmd | Jis naudojamas komandai „išspausti“ nustatyti. gunzip yra numatytoji komanda. |
suspaudimo uždelsimas | Jis naudojamas žurnalo failų glaudinimo procesui atidėti. |
pranešimas tuščias | Jis naudojamas nepasukti tuščio failo. |
aš pasiilgau | Jei jis nustatytas, trūkstamų žurnalo failų klaida nesukuriama. |
dydis | Jis naudojamas norint nustatyti žurnalo failų sukimosi ribą. |
datos tekstas | Jis naudojamas pridėti datos reikšmę kaip pasukimo failo priesagą. |
sutrumpinti | Jis naudojamas kuriant originalaus failo kopiją. |
iš anksto pasuktas | Jis naudojamas scenarijui paleisti prieš sukant žurnalo failus. |
po rotacijos | Jis naudojamas scenarijui paleisti pasukus žurnalo failus. |
sukurti | Jis naudojamas žurnalo failams kurti su root teise. |
Sintaksė:
Komandos „logrotate“ sintaksė pateikiama taip:
log pasukti [ OPTION ] config_file_path
Įvairių tipų parinktys gali būti naudojamos įvairiems tikslams naudojant komandą „logrotate“.
Logrotate parinktys
Kai kurios naudingos komandos „logrotate“ parinktys yra paminėtos toliau:
-f, -jėga | Jis naudojamas priverstinai suktis, kai reikia. |
-d, -derinimas | Jis naudojamas derinimo režimui įjungti sukimosi metu. |
-m, –mail |
Jis naudojamas el. laiškui siųsti rotacijos metu. |
-s, -state | Jis naudojamas alternatyvios būsenos failams. |
– naudojimas | Jis naudojamas naudojimo informacijai spausdinti. |
–?, – pagalba | Jis naudojamas pagalbos žinutėms spausdinti. |
-v, -žodingas | Jis naudojamas spausdinti išsamiu režimu. |
Logrotate konfigūracijos failą
Pagrindinis logrotate konfigūracijos failas yra „/etc/logrotate.conf“ vietoje. Vykdykite šią komandą, kad atidarytumėte failą nano redaktoriuje:
$ nano / ir tt / logrotate.confNumatytasis „logrotate“ komandos nustatymas rodomas „logrotate.conf“ faile. „Include“ direktyva naudojama faile norint nuskaityti konfigūraciją, esančią „/etc/logrotate.d“ kataloge.
1 pavyzdys: Sukurkite paprastą logrotate konfigūracijos failą
Sukurkite pavyzdinį žurnalo failą pavadinimu „/var/log/test.log“ su pavyzdiniais žurnalo duomenimis. Vykdykite šią komandą, kad atidarytumėte nano redaktorių ir sukurtumėte naują „logrotate.conf“ failą aplanko „/etc/tmp“ vietoje. Sukurkite aplanką „/tmp“ su root teisėmis, jei jis nebuvo sukurtas anksčiau.
$ nano / ir tt / tmp / logrotate.confPridėkite šį turinį prie failo „/var/log/test.log“ failo. Pagal nustatymą, failas „test.log“ bus pasukamas kasdien, jei failo dydis viršija 5K:
/ buvo / žurnalas / test.log {kasdien
dydis 5 tūkst
jo šaknis adm
}
Norėdami patikrinti žurnalo failo dydį, paleiskite šią komandą:
$ ls -l / buvo / žurnalas / test.logSukūrę konfigūracijos failą, paleiskite komandą „logrotate“.
$ sudo log pasukti / ir tt / tmp / logrotate.confPaleiskite šią komandą dar kartą, kad patikrintumėte žurnalo failo dydį, kai įvykdėte komandą „logrotate“:
$ ls -l / buvo / žurnalas / test.logFailo „test.log“ dydis yra 1 K+. Taigi, remiantis konfigūracijos nustatymu, pasukimas nėra atliekamas.
Pakeiskite dydžio reikšmę į 1K faile „/etc/tmp/logrotate.conf“ ir dar kartą paleiskite komandą „ls“, kad patikrintumėte „/var/log/test.log“ failo dydį. Pagal išvestį žurnalo failas pasukamas ir ištrinamas, nes viršijamas dydžio limitas.
2 pavyzdys: Logrotate Copytruncate naudojimas
Sukurkite arba modifikuokite failą „/etc/tmp/logrotate.conf“ naudodami toliau nurodytus nustatymus, kad parodytumėte, kaip naudojamas kopijavimas. Pagal naujus nustatymus logrotate sukuria pradinio failo kopiją, paversdama pradinio failo dydį iki nulio.
/ buvo / žurnalas / test.log {pasukti 5
dydis 1 k
sutrumpinti
jo šaknis adm
}
Paleiskite šią komandą, kad patikrintumėte „test.log“ failo dydį:
$ ls -l / buvo / žurnalas / test.logSukūrę konfigūracijos failą, paleiskite komandą „logrotate“.
$ sudo log pasukti / ir tt / tmp / logrotate.confPaleiskite šią komandą dar kartą, kad patikrintumėte „test.log“ failo dydį, įvykdę komandą „logrotate“:
$ ls -l / buvo / žurnalas / test.logPradinis failo dydis tampa 0, kai įvykdoma komanda „logrotate“, skirta copytruncate nuostatai.
3 pavyzdys: Logrotate Compress naudojimas
Sukurkite arba modifikuokite failą „/etc/tmp/logrotate.conf“ naudodami toliau nurodytus nustatymus, kad parodytumėte suspaudimo naudojimą. Pagal naujus nustatymus logrotate sukuria pradinio failo suspaudimo failą.
/ buvo / žurnalas / test.log {pasukti 5
dydis 1 k
suspausti
sukurti 770 šaknis adm
}
Paleiskite šią komandą, kad patikrintumėte „/var/log“ failų ir aplankų sąrašą:
$ ls / buvo / žurnalas /Sukūrę konfigūracijos failą, paleiskite komandą „logrotate“.
$ sudo log pasukti / ir tt / tmp / logrotate.confDar kartą paleiskite šią komandą, kad patikrintumėte „/var/log“ failų ir aplankų sąrašą:
$ ls / buvo / žurnalas /Sukurtas „test.log“ failo suspaustas failas pavadinimu „test.log.1.gz“, o pradinis failas pašalinamas.
4 pavyzdys: Logrotate Dateext naudojimas
Sukurkite arba modifikuokite failą „/etc/tmp/logrotate.conf“ naudodami toliau nurodytus nustatymus, kad parodytumėte, kaip naudojamas dateext. Pagal naujus nustatymus logrotate sukuria pradinio failo suglaudinimo failą su datos reikšme.
buvo / žurnalas / test.log {jo šaknis adm
pasukti 5
dydis 1 k
suspausti
sukurti 770 šaknis adm
datos tekstas
}
Sukūrę konfigūracijos failą, paleiskite komandą „logrotate“.
$ sudo logpasukti / ir tt / tmp / logrotate.confPaleiskite šią komandą, kad patikrintumėte „/var/log“ failų ir aplankų sąrašą:
$ ls -l / buvo / žurnalas /Sukurtas suspaustas failo „test.log“ failas pavadinimu „test.log.20240129.gz“, o pradinis failas pašalinamas.
5 pavyzdys: Logrotate Maxage naudojimas
Sukurkite arba modifikuokite failą „/etc/tmp/logrotate.conf“ naudodami toliau nurodytus nustatymus, kad parodytumėte, kaip naudojamas maxage. Pagal nustatymus logrotate išsaugo penkis žurnalo įrašus, jei po vienos dienos žurnalo failo dydis viršija 1K.
/ buvo / žurnalas / test.log {jo šaknis adm
pasukti 5
dydis 1 k
suspausti
maxage 1
}
Vykdykite šią komandą „logrotate“, kad išsaugotumėte išvestį kitame žurnalo faile, pavadintame „out.log“:
$ sudo log pasukti -s = / buvo / žurnalas / out.log / ir tt / tmp / logrotate.confPagal šią išvestį „out.log“ failas sukuriamas įvykdžius komandą „logrotate“:
6 pavyzdys: Logrotate Missingok naudojimas
Sukurkite arba pakeiskite failą „/etc/tmp/logrotate.conf“ naudodami šiuos nustatymus. Čia žurnalo failas „testfile.log“ neegzistuoja aplanke „/var/log“.
/ buvo / žurnalas / testfile.log {jo šaknis adm
pasukti 5
dydis 1 k
suspausti
}
Įvykdžius komandą „logrotate“, išspausdinamas klaidos pranešimas.
Logrotate konfigūracijos faile pridėkite „missingok“ nustatymą ir dar kartą paleiskite komandą „logrotate“. Dėl trūkstamo žurnalo failo klaida nespausdinama.
7 pavyzdys: Logrotate Prerotate naudojimas
Sukurkite „Bash“ failą pavadinimu „test.sh“ naudodami šį scenarijų, kuris išspausdina paprastą pranešimą. Failas šiame logrotate pavyzdyje naudojamas norint parodyti išankstinio pasukimo naudojimą logrotate konfigūracijos faile.
test.sh#!/bin/bash
aidas „logrotate pavyzdžiai...“
Sukūrę failą, paleiskite šią komandą, kad nustatytumėte šio failo vykdymo leidimą visiems vartotojams:
$ chmod a+x / namai / supratimas / test.shDabar sukurkite arba modifikuokite failą „/etc/tmp/logrotate.conf“ naudodami šiuos nustatymus. Pagal nustatymus logrotate išsaugo penkis žurnalo įrašus, jei žurnalo failo dydis viršija 1K, o failas „test.sh“ vykdomas prieš pasukimą.
/ buvo / žurnalas / test.log {jo šaknis adm
pasukti 5
dydis 1 k
iš anksto pasuktas
/ namai / supratimas / test.sh
pabaiga
}
Failo „test.sh“ išvestis rodoma įvykdžius komandą „logrotate“:
Išvada
Įvairūs komandos „logrotate“ naudojimo būdai parodyti šioje pamokoje, naudojant kelis pavyzdžius, kurie padės „Linux“ vartotojui žinoti komandos naudojimą ir tinkamai valdyti žurnalo failus.