Problem z logrotate polega na tym, że ma on jeden plik konfiguracji globalnej i NIE pozwala na uruchomienie pojedynczego pliku rotacji podkonfiguracji dziennika przy jednoczesnym zastosowaniu opcji ustawionych w pliku konfiguracji globalnej. Oznacza to, że nie ma dobrego sposobu na uruchomienie JEDNEJ kontroli rotacji plików dziennika, dokładnie tak, jak przy każdej nocy z crona. Mógłby to zrobić z opcją „ograniczenie do tych plików dziennika”, a jeszcze lepiej „uruchomić konfigurację globalną, ale uwzględnić tylko ten plik podkonfiguracji”.
zwróć uwagę, że --forcepliki zostaną obrócone, nawet jeśli nie będą spełniać określonych kryteriów, takich jak rozmiar, wiek itp.
xofer
4
Jeśli umieścisz plik konfiguracyjny logrotate w /etc/logrotate.d/custom.conf, czy to oznacza, że nie musisz określać rozmiaru / czasu, w którym dziennik powinien się automatycznie obracać? A może powinieneś umieścić konfigurację w innym folderze, jeśli nie zamierzasz automatycznie obracać konfiguracji?
Damainman
18
Kryteria „notifempty” nie jest ignorowane przez „--force”. Przez chwilę mnie to zaskoczyło, dlatego wymieniam to jako wyjątek od oświadczenia @xofer.
thelogix
16
Możesz po prostu obrócić wszystko za pomocą logrotate --force /etc/logrotate.d/(tylko nazwa katalogu)
fcm
1
To prawda, że --forcewymusi rotację, nawet jeśli pliki nie spełniają kryteriów (wiek, rozmiar itp.), Ale proszę wziąć pod uwagę, że jest to jedyny sposób na wykrycie prawdziwych problemów, logrotate -dktóre się nie pojawiłyby (na przykład, gdy zabrakło serwera przestrzeń z powodu niedziałającego programu Logrotate od miesięcy ... i dzięki --forceFile exists
niemu
558
logrotate -d [your_config_file] wywołuje tryb debugowania, podając pełny opis tego, co się stanie, ale pozostawiając pliki dziennika nietknięte.
ci, którzy tu przybyli, szukając odpowiedzi na pytanie typu „jak mogę przetestować moją logrotate conf?” może wziąć ten jako odpowiedź, ponieważ tylko
TESTUJE konf
nie przejmowałem się twoim podejściem, próbowałem logrotate --forcei działa dobrze.
Benyamin Jafari,
122
Jeśli chcesz wymusić uruchomienie pojedynczego określonego katalogu lub plików dziennika demona, zwykle możesz znaleźć konfigurację /etc/logrotate.di będą one działać samodzielnie.
Należy pamiętać, że określona globalna konfiguracja /etc/logrotate.confnie będzie obowiązywać, więc jeśli to zrobisz, upewnij się, że określiłeś wszystkie opcje, które chcesz/etc/logrotate.d/[servicename] pliku konfiguracyjnym.
Możesz to wypróbować, -daby zobaczyć, co się stanie:
logrotate -df /etc/logrotate.d/nginx
Następnie możesz uruchomić (używając nginx jako przykładu):
Jest to dobre i dobre, ale tracisz wszelkie ustawienia globalne, które masz w pliku „/etc/logrotate.conf”. Napisałem skrypt, aby połączyć globalne i określone pliki logrotate razem, a następnie użyć go, aby rozwiązać ten problem. (patrz moja odpowiedź).
Anthony
Użycie logrotate -d /etc/logrotate.confspowoduje także przejście przez inne dołączone pliki conf.
Ten /var/lib/logrotate.statusplik nie istnieje w Debian Squeeze.
Lashae
Wypróbuj / var / lib / logrotate / status. Nie jestem pewien, czy jest to kwestia debian / redhat, czy też wstawię „.” gdzie powinienem był wstawić „/”.
Ten skrypt uruchomi tylko pojedynczy plik podkonfiguracyjny logrotate znaleziony w „/etc/logrotate.d”, ale uwzględni ustawienia globalne z pliku globalnego pliku konfiguracyjnego „/etc/logrotate.conf”. Możesz także użyć innych opcji do przetestowania go ...
Odpowiedzi:
Tak:
logrotate --force $CONFIG_FILE
źródło
--force
pliki zostaną obrócone, nawet jeśli nie będą spełniać określonych kryteriów, takich jak rozmiar, wiek itp.logrotate --force /etc/logrotate.d/
(tylko nazwa katalogu)--force
wymusi rotację, nawet jeśli pliki nie spełniają kryteriów (wiek, rozmiar itp.), Ale proszę wziąć pod uwagę, że jest to jedyny sposób na wykrycie prawdziwych problemów,logrotate -d
które się nie pojawiłyby (na przykład, gdy zabrakło serwera przestrzeń z powodu niedziałającego programu Logrotate od miesięcy ... i dzięki--force
File exists
logrotate -d [your_config_file]
wywołuje tryb debugowania, podając pełny opis tego, co się stanie, ale pozostawiając pliki dziennika nietknięte.źródło
logrotate --force
i działa dobrze.Jeśli chcesz wymusić uruchomienie pojedynczego określonego katalogu lub plików dziennika demona, zwykle możesz znaleźć konfigurację
/etc/logrotate.d
i będą one działać samodzielnie.Należy pamiętać, że określona globalna konfiguracja
/etc/logrotate.conf
nie będzie obowiązywać, więc jeśli to zrobisz, upewnij się, że określiłeś wszystkie opcje, które chcesz/etc/logrotate.d/[servicename]
pliku konfiguracyjnym.Możesz to wypróbować,
-d
aby zobaczyć, co się stanie:Następnie możesz uruchomić (używając nginx jako przykładu):
I same dzienniki nginx zostaną obrócone.
źródło
logrotate -d /etc/logrotate.conf
spowoduje także przejście przez inne dołączone pliki conf.Możesz uruchomić go w trybie pełnym + wymuszonym.
logrotate -vf /etc/logrotate.conf
źródło
Sposób uruchomienia wszystkich programów logrotate to:
, który uruchomi podstawowy plik logrotate, który obejmuje również inne konfiguracje logrotate
źródło
Wydaj następującą komendę, sposób uruchomienia określonego programu logrotate:
Opcje:
-v: pokaż proces
-f: wymuszanie uruchomienia
niestandardowe: ustawienie dziennika zdefiniowane przez użytkownika
np .: mongodb-log
źródło
edytuj /var/lib/logrotate.status, aby zresetować datę „ostatniej rotacji” w pliku dziennika, który chcesz przetestować.
Potem biegnij
logrotate YOUR_CONFIG_FILE
.Możesz też użyć flagi --force, ale edycja logrotate.status zapewnia większą precyzję w stosunku do tego, co działa i nie jest obracane.
źródło
/var/lib/logrotate.status
plik nie istnieje w Debian Squeeze.Utworzono skrypt powłoki, aby rozwiązać problem.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Ten skrypt uruchomi tylko pojedynczy plik podkonfiguracyjny logrotate znaleziony w „/etc/logrotate.d”, ale uwzględni ustawienia globalne z pliku globalnego pliku konfiguracyjnego „/etc/logrotate.conf”. Możesz także użyć innych opcji do przetestowania go ...
Na przykład...
źródło