Logrotate to narzędzie wiersza poleceń systemu Linux umożliwiające zarządzanie wpisami w dzienniku. To narzędzie pomaga administratorowi wykonywać różne typy zadań na wpisach dziennika, takie jak ograniczanie obróconych plików dziennika, kompresowanie obróconych plików dziennika, usuwanie niepotrzebnych plików dziennika, wykonywanie określonego skryptu powłoki na podstawie plików dziennika itp. Używa W tym samouczku na wielu przykładach pokazano polecenie „logrorate” służące do zarządzania plikami dziennika na różne sposoby.
Sprawdź zainstalowaną wersję Logrotate
Polecenie „logrotate” jest domyślnie instalowane w nowej wersji systemu operacyjnego Ubuntu. Uruchom następujące polecenie, aby sprawdzić zainstalowaną wersję polecenia „logrotate”:
$ logrotat --wersja
Wpisy dziennika różnych aplikacji są domyślnie przechowywane w folderze „/var/log”. Jeśli sprawdzisz zawartość folderu, pojawi się następująca podobna treść.
$ ls / był / dziennik
Ustaw konfigurację „Logrotate”.
Wartość ustawienia | Zamiar |
codziennie/tygodniowo/miesięcznie/rocznie | Określa czas trwania rotacji kłód. |
obrócić numer | Określa liczbę plików, które będą przechowywane przed usunięciem starych plików dziennika. |
Kompresja | Służy do kompresji plików dziennika. |
skompresujcmd | Służy do ustawiania polecenia „kompresuj”. Domyślnym poleceniem jest gzip. |
rozpakujcmd | Służy do ustawiania polecenia „dekompresuj”. Gunzip jest poleceniem domyślnym. |
opóźnij kompresję | Służy do opóźnienia procesu kompresji plików dziennika. |
powiadomienie puste | Służy do nie obracania pustego pliku. |
brakuje mi | Jeśli jest ustawiona, w przypadku brakujących plików dziennika nie jest generowany żaden błąd. |
rozmiar | Służy do ustawienia limitu rozpoczęcia rotacji plików dziennika. |
tekst daty | Służy do dodawania wartości daty jako przyrostka pliku obracania. |
skopiuj | Służy do tworzenia kopii oryginalnego pliku. |
wstępnie obrócony | Służy do uruchomienia skryptu przed obróceniem plików dziennika. |
postrotować | Służy do uruchomienia skryptu po obróceniu plików dziennika. |
tworzyć | Służy do tworzenia plików dziennika z uprawnieniami roota. |
Składnia:
Składnia polecenia „logrotate” jest następująca:
logrotat [ OPCJA ] ścieżka_pliku_konfiguracyjnego
Za pomocą polecenia „logrotate” można używać różnych typów opcji do różnych celów.
Opcje Logrotatu
Niektóre przydatne opcje polecenia „logrotate” są wymienione poniżej:
-f, –siła | Służy do wykonywania rotacji z dużą siłą, gdy jest to wymagane. |
-d, –debug | Służy do włączania trybu debugowania podczas rotacji. |
-m, –mail |
Służy do wysyłania wiadomości e-mail podczas rotacji. |
-s, –state |
Służy do plików stanu alternatywnego. |
-stosowanie | Służy do drukowania informacji o użytkowaniu. |
-?, -pomoc | Służy do drukowania komunikatów pomocniczych. |
-v, –pełne | Służy do drukowania w trybie pełnym. |
Plik konfiguracyjny Logrotate
Główny plik konfiguracyjny logrotate znajduje się w lokalizacji „/etc/logrotate.conf”. Uruchom następujące polecenie, aby otworzyć plik w edytorze nano:
$ nano / itp / logrotate.confDomyślne ustawienie polecenia „logrotate” jest pokazane w pliku „logrotate.conf”. Dyrektywa „include” jest używana w pliku w celu pobrania konfiguracji znajdującej się w katalogu „/etc/logrotate.d”.
Przykład 1: Utwórz prosty plik konfiguracyjny Logrotate
Utwórz przykładowy plik dziennika o nazwie „/var/log/test.log” zawierający przykładowe dane dziennika. Uruchom następujące polecenie, aby otworzyć edytor nano i utworzyć nowy plik „logrotate.conf” w lokalizacji folderu „/etc/tmp”. Utwórz folder „/tmp” z uprawnieniami roota, jeśli nie został wcześniej utworzony.
$ nano / itp / tmp / logrotate.confDodaj następującą zawartość do pliku „/var/log/test.log”. Zgodnie z ustawieniem plik „test.log” będzie obracany codziennie, jeśli rozmiar pliku przekroczy 5 KB:
/ był / dziennik / test.log {codziennie
rozmiar 5 tys
jego root adm
}
Uruchom następujące polecenie, aby sprawdzić rozmiar pliku dziennika:
$ ls -l / był / dziennik / test.logPo utworzeniu pliku konfiguracyjnego uruchom polecenie „logrotate”.
$ sudo logrotat / itp / tmp / logrotate.confUruchom ponownie następujące polecenie, aby sprawdzić rozmiar pliku dziennika po wykonaniu polecenia „logrotate”:
$ ls -l / był / dziennik / test.logRozmiar pliku „test.log” wynosi ponad 1K. Zatem nie jest wykonywana żadna rotacja w oparciu o ustawienia konfiguracyjne.
Zmień wartość rozmiaru na 1K w pliku „/etc/tmp/logrotate.conf” i ponownie uruchom polecenie „ls”, aby sprawdzić rozmiar pliku „/var/log/test.log”. Zgodnie z wynikami plik dziennika jest obracany i usuwany z powodu przekroczenia limitu rozmiaru.
Przykład 2: Użycie Logrotate Copytruncate
Utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami, aby pokazać użycie opcji copytruncate. Zgodnie z nowymi ustawieniami logrotate tworzy kopię oryginalnego pliku, zmniejszając oryginalny rozmiar pliku do zera.
/ był / dziennik / test.log {obracać się 5
rozmiar 1 tys
skopiuj
jego root adm
}
Uruchom następujące polecenie, aby sprawdzić rozmiar pliku „test.log”:
$ ls -l / był / dziennik / test.logPo utworzeniu pliku konfiguracyjnego uruchom polecenie „logrotate”.
$ sudo logrotat / itp / tmp / logrotate.confUruchom ponownie następujące polecenie, aby sprawdzić rozmiar pliku „test.log” po wykonaniu polecenia „logrotate”:
$ ls -l / był / dziennik / test.logOryginalny rozmiar pliku wynosi 0 po wykonaniu polecenia „logrotate” dla ustawienia copytruncate.
Przykład 3: Użycie Logrotate Compress
Utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami, aby pokazać użycie kompresu. Zgodnie z nowymi ustawieniami logrotate tworzy plik kompresyjny oryginalnego pliku.
/ był / dziennik / test.log {obracać się 5
rozmiar 1 tys
Kompresja
tworzyć 770 root adm
}
Uruchom następujące polecenie, aby sprawdzić listę plików i folderów „/var/log”:
$ ls / był / dziennik /Po utworzeniu pliku konfiguracyjnego uruchom polecenie „logrotate”.
$ sudo logrotat / itp / tmp / logrotate.confUruchom ponownie następujące polecenie, aby sprawdzić listę plików i folderów „/var/log”:
$ ls / był / dziennik /Tworzony jest skompresowany plik „test.log” o nazwie „test.log.1.gz”, a oryginalny plik jest usuwany.
Przykład 4: Użycie tekstu daty Logrotate
Utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami, aby pokazać użycie dateext. Zgodnie z nowymi ustawieniami logrotate tworzy plik kompresyjny oryginalnego pliku z wartością daty.
był / dziennik / test.log {jego root adm
obracać się 5
rozmiar 1 tys
Kompresja
tworzyć 770 root adm
tekst daty
}
Po utworzeniu pliku konfiguracyjnego uruchom polecenie „logrotate”.
$ sudo logrotat / itp / tmp / logrotate.confUruchom następujące polecenie, aby sprawdzić listę plików i folderów „/var/log”:
$ ls -l / był / dziennik /Tworzony jest skompresowany plik „test.log” o nazwie „test.log.20240129.gz”, a oryginalny plik jest usuwany.
Przykład 5: Użycie Logrotate Maxage
Utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami, aby pokazać użycie maxage. Zgodnie z ustawieniami logrotate przechowuje pięć wpisów w dzienniku, jeśli rozmiar pliku dziennika przekracza 1 KB po jednym dniu.
/ był / dziennik / test.log {jego root adm
obracać się 5
rozmiar 1 tys
Kompresja
maks 1
}
Uruchom następującą komendę „logrotate”, aby zapisać dane wyjściowe w innym pliku dziennika o nazwie „out.log”:
$ sudo logrotat -S = / był / dziennik / wyloguj się / itp / tmp / logrotate.confZgodnie z następującymi wynikami, plik „out.log” tworzony jest po wykonaniu polecenia „logrotate”:
Przykład 6: Użycie Logrotate Missingok
Utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami. W tym przypadku plik dziennika „testfile.log” nie istnieje w folderze „/var/log”.
/ był / dziennik / plik testowy.log {jego root adm
obracać się 5
rozmiar 1 tys
Kompresja
}
Po wykonaniu polecenia „logrotate” drukowany jest komunikat o błędzie.
Dodaj ustawienie „missingok” do pliku konfiguracyjnego logrotate i ponownie uruchom polecenie „logrotate”. W przypadku brakującego pliku dziennika nie jest drukowany żaden błąd.
Przykład 7: Użycie Logrotate Prerotate
Utwórz plik Bash o nazwie „test.sh” za pomocą następującego skryptu, który wypisuje prosty komunikat. Plik ten jest używany w tym przykładzie logrotate, aby pokazać użycie prerotate w pliku konfiguracyjnym logrotate.
test.sh#!/bin/bash
Echo „przykłady logrotatu…”
Po utworzeniu pliku uruchom następującą komendę, aby ustawić uprawnienia do wykonywania tego pliku dla wszystkich użytkowników:
$ chmod a+x / dom / zrozumienie / test.shTeraz utwórz lub zmodyfikuj plik „/etc/tmp/logrotate.conf” z następującymi ustawieniami. Zgodnie z ustawieniami logrotate przechowuje pięć wpisów w dzienniku, jeśli rozmiar pliku dziennika przekracza 1 KB, a przed rotacją wykonywany jest plik „test.sh”.
/ był / dziennik / test.log {jego root adm
obracać się 5
rozmiar 1 tys
wstępnie obrócony
/ dom / zrozumienie / test.sh
końcówka
}
Dane wyjściowe pliku „test.sh” są wyświetlane po wykonaniu polecenia „logrotate”:
Wniosek
W tym samouczku pokazano różne zastosowania polecenia „logrotate” na wielu przykładach, które pomogą użytkownikowi systemu Linux poznać zastosowanie polecenia i prawidłowo zarządzać plikami dziennika.