Logrotate este un instrument de linie de comandă al Linux pentru a gestiona intrările de jurnal. Acest instrument ajută la efectuarea diferitelor tipuri de sarcini privind intrările de jurnal de către administrator, cum ar fi limitarea fișierelor jurnal rotite, comprimarea fișierelor jurnal rotite, ștergerea fișierelor jurnal inutile, executarea unui script shell special bazat pe fișierele jurnal etc. a comenzii „logrorate” pentru gestionarea fișierelor jurnal în diferite moduri sunt prezentate în acest tutorial folosind mai multe exemple.
Verificați versiunea Logrotate instalată
Comanda „logrotate” este instalată implicit în noua versiune a sistemului de operare Ubuntu. Rulați următoarea comandă pentru a verifica versiunea instalată a comenzii „logrotate”:
$ logrotate --versiune
Intrările de jurnal ale diferitelor aplicații sunt stocate implicit în folderul „/var/log”. Următorul conținut similar va apărea dacă verificați conținutul folderului.
$ ls / a fost / Buturuga
Setați configurația „Logrotate”.
Valoare de setare | Scop |
zilnic/săptămânal/lunar/anual | Acesta definește durata de timp pentru rotirea jurnalelor. |
rotește numărul | Acesta definește numărul de fișiere care vor fi păstrate înainte de a elimina vechile fișiere jurnal. |
comprima | Este folosit pentru a comprima fișierele jurnal. |
comprescmd | Este folosit pentru a seta comanda „comprimare”. Gzip este comanda implicită. |
uncompresscmd | Este folosit pentru a seta comanda „decomprimare”. Gunzip este comanda implicită. |
delaycompress | Este folosit pentru a întârzia procesul de comprimare a fișierelor jurnal. |
notificare goală | Este folosit pentru a nu roti fișierul gol. |
lipsesc | Dacă este setat, nu se generează nicio eroare pentru fișierele jurnal lipsă. |
mărimea | Este folosit pentru a seta limita pentru a începe rotirea fișierelor jurnal. |
dateext | Este folosit pentru a adăuga o valoare de dată ca sufix al fișierului de rotație. |
copytruncate | Este folosit pentru a crea o copie a fișierului original. |
prerotate | Este folosit pentru a rula un script înainte de a roti fișierele jurnal. |
postrotate | Este folosit pentru a rula un script după rotirea fișierelor jurnal. |
crea | Este folosit pentru a crea fișierele jurnal cu un privilegiu de root. |
Sintaxă:
Sintaxa comenzii „logrotate” este dată după cum urmează:
logrotate [ OPȚIUNE ] config_file_path
Diferite tipuri de opțiuni pot fi utilizate în scopuri diferite cu comanda „logrotate”.
Opțiuni de rotație
Câteva opțiuni utile ale comenzii „logrotate” sunt menționate în cele ce urmează:
-f, –forță | Este folosit pentru a face rotirea cu forță atunci când este necesar. |
-d, –debug | Este folosit pentru a activa modul de depanare în timpul rotației. |
-m, –mail |
Este folosit pentru a trimite un e-mail în timpul rotației. |
-s, –state |
Este folosit pentru fișiere de stat alternative. |
– utilizare | Este folosit pentru a tipări informațiile de utilizare. |
-?, -Ajutor | Este folosit pentru a tipări mesajele de ajutor. |
-v, –verbos | Este folosit pentru a imprima în modul verbose. |
Fișier de configurare Logrotate
Fișierul principal de configurare logrotate este localizat în locația „/etc/logrotate.conf”. Rulați următoarea comandă pentru a deschide fișierul în editorul nano:
$ nano / etc / logrotate.confSetarea implicită a comenzii „logrotate” este afișată în fișierul „logrotate.conf”. Directiva „include” este utilizată în fișier pentru a prelua configurația care se află în directorul „/etc/logrotate.d”.
Exemplul 1: Creați un fișier de configurare Locrotate simplu
Creați un fișier jurnal eșantion numit „/var/log/test.log” cu datele de jurnal eșantion. Rulați următoarea comandă pentru a deschide editorul nano pentru a crea un nou fișier „logrotate.conf” în locația folderului „/etc/tmp”. Creați folderul „/tmp” cu privilegii de rădăcină dacă nu a fost creat înainte.
$ nano / etc / tmp / logrotate.confAdăugați următorul conținut în fișierul pentru fișierul „/var/log/test.log”. Conform setărilor, fișierul „test.log” va fi rotit zilnic dacă dimensiunea fișierului depășește 5K:
/ a fost / Buturuga / test.log {zilnic
mărimea 5K
a lui adm rădăcină
}
Rulați următoarea comandă pentru a verifica dimensiunea fișierului jurnal:
$ ls -l / a fost / Buturuga / test.logRulați comanda „logrotate” după crearea fișierului de configurare.
$ sudo logrotate / etc / tmp / logrotate.confRulați din nou următoarea comandă pentru a verifica dimensiunea fișierului jurnal după executarea comenzii „logrotate”:
$ ls -l / a fost / Buturuga / test.logDimensiunea fișierului „test.log” este de 1K+. Deci, nu se face nicio rotație pe baza setărilor de configurare.
Schimbați valoarea dimensiunii la 1K în fișierul „/etc/tmp/logrotate.conf” și rulați din nou comanda „ls” pentru a verifica dimensiunea fișierului „/var/log/test.log”. Conform rezultatelor, fișierul jurnal este rotit și șters deoarece limita de dimensiune este depășită.
Exemplul 2: Utilizarea Logrotate Copytruncate
Creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări pentru a arăta utilizarea copytruncate. În conformitate cu noile setări, logrotate creează o copie a fișierului original făcând dimensiunea fișierului original la zero.
/ a fost / Buturuga / test.log {roti 5
mărimea 1 k
copytruncate
a lui adm rădăcină
}
Rulați următoarea comandă pentru a verifica dimensiunea fișierului „test.log”:
$ ls -l / a fost / Buturuga / test.logRulați comanda „logrotate” după crearea fișierului de configurare.
$ sudo logrotate / etc / tmp / logrotate.confRulați următoarea comandă din nou pentru a verifica dimensiunea fișierului „test.log” după executarea comenzii „logrotate”:
$ ls -l / a fost / Buturuga / test.logDimensiunea originală a fișierului devine 0 după executarea comenzii „logrotate” pentru setarea copytruncate.
Exemplul 3: Utilizarea Logrotate Compress
Creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări pentru a arăta utilizarea compresei. Conform noilor setări, logrotate creează un fișier comprimat al fișierului original.
/ a fost / Buturuga / test.log {roti 5
mărimea 1 k
comprima
crea 770 adm rădăcină
}
Rulați următoarea comandă pentru a verifica lista fișierelor și folderelor din „/var/log”:
$ ls / a fost / Buturuga /Rulați comanda „logrotate” după crearea fișierului de configurare.
$ sudo logrotate / etc / tmp / logrotate.confRulați următoarea comandă din nou pentru a verifica lista fișierelor și folderelor din „/var/log”:
$ ls / a fost / Buturuga /Fișierul comprimat al fișierului „test.log” este creat cu numele „test.log.1.gz” și fișierul original este eliminat.
Exemplul 4: Utilizarea Logrotate Dateext
Creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări pentru a afișa utilizarea dateext. Conform noilor setări, logrotate creează un fișier comprimat al fișierului original cu valoarea datei.
a fost / Buturuga / test.log {a lui adm rădăcină
roti 5
mărimea 1 k
comprima
crea 770 adm rădăcină
dateext
}
Rulați comanda „logrotate” după crearea fișierului de configurare.
$ sudo logrotate / etc / tmp / logrotate.confRulați următoarea comandă pentru a verifica lista fișierelor și folderelor din „/var/log”:
$ ls -l / a fost / Buturuga /Fișierul comprimat al fișierului „test.log” este creat cu numele „test.log.20240129.gz” și fișierul original este eliminat.
Exemplul 5: Utilizarea Logrotate Maxage
Creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări pentru a arăta utilizarea maxage-ului. Conform setărilor, logrotate păstrează cinci intrări de jurnal dacă dimensiunea fișierului jurnal depășește 1K după o zi.
/ a fost / Buturuga / test.log {a lui adm rădăcină
roti 5
mărimea 1 k
comprima
maxage 1
}
Rulați următoarea comandă „logrotate” pentru a stoca rezultatul într-un alt fișier jurnal numit „out.log”:
$ sudo logrotate -s = / a fost / Buturuga / out.log / etc / tmp / logrotate.confConform următoarei rezultate, fișierul „out.log” este creat după executarea comenzii „logrotate”:
Exemplul 6: Utilizarea Logrotate Missingok
Creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări. Aici, fișierul jurnal „testfile.log” nu există în folderul „/var/log”.
/ a fost / Buturuga / testfile.log {a lui adm rădăcină
roti 5
mărimea 1 k
comprima
}
Un mesaj de eroare este tipărit după executarea comenzii „logrotate”.
Adăugați setarea „missingok” în fișierul de configurare logrotate și executați din nou comanda „logrotate”. Nu este tipărită nicio eroare pentru fișierul jurnal lipsă.
Exemplul 7: Utilizarea Logrotate Prerotate
Creați un fișier Bash numit „test.sh” cu următorul script care imprimă un mesaj simplu. Fișierul este folosit în acest exemplu de logrotate pentru a arăta utilizarea prerotate în fișierul de configurare logrotate.
test.sh#!/bin/bash
ecou 'exemple logrotate...'
După crearea fișierului, rulați următoarea comandă pentru a seta permisiunea de execuție a acestui fișier pentru toți utilizatorii:
$ chmod a+x / Acasă / înţelegere / test.shAcum, creați sau modificați fișierul „/etc/tmp/logrotate.conf” cu următoarele setări. Conform setărilor, logrotate păstrează cinci intrări de jurnal dacă dimensiunea fișierului jurnal depășește 1K și fișierul „test.sh” este executat înainte de rotație.
/ a fost / Buturuga / test.log {a lui adm rădăcină
roti 5
mărimea 1 k
prerotate
/ Acasă / înţelegere / test.sh
script final
}
Ieșirea fișierului „test.sh” este afișată după executarea comenzii „logrotate”:
Concluzie
Diferitele utilizări ale comenzii „logrotate” sunt prezentate în acest tutorial folosind mai multe exemple care vor ajuta utilizatorul Linux să cunoască utilizările comenzii și să gestioneze corect fișierele jurnal.