2010-01-22 9 views
404

Czy można uruchomić jedną iterację programu logrotate ręcznie bez planowania jej w pewnym odstępie czasu?Czy można ręcznie przeprowadzić jedno ręczne sprawdzanie?

+2

Problem z logrotate polega na tym, że ma jeden globalny plik konfiguracyjny i NIE pozwala na uruchamianie pliku podkonfiguracji pojedynczego dziennika obracania z jednoczesnym zastosowaniem opcji ustawionych w globalnym pliku konfiguracyjnym. Nie jest to dobry sposób na uruchomienie JEDNEGO pliku logu, tak jak w przypadku każdej nocy uruchamianej z crona. Mogłoby to zrobić z opcją "ograniczenia do tych plików logów" lub jeszcze lepiej "uruchom konfigurację globalną, ale dołącz tylko ten plik pod-konfiguracji". – anthony

Odpowiedz

537

Tak: logrotate --force $CONFIG_FILE

+82

Zwróć uwagę, że '--force 'obróci plik (e), nawet jeśli nie spełniają określonych kryteriów, takich jak min, wiek itp. – xofer

+4

Jeśli umieścisz plik konfiguracyjny logrotate w pliku /etc/logrotate.d/custom.conf Czy to oznacza, że ​​nie musisz określać rozmiaru/czasu, kiedy dziennik powinien się automatycznie obracać? A może powinieneś umieścić konfigurację w innym folderze, jeśli nie chcesz, aby obracała się automatycznie? – Damainman

+1

+1 Dzięki temu właśnie szukam – Mike

378

logrotate -d [your_config_file] wywołuje tryb debugowania, co daje rozwlekły opis tego, co by się stało, ale pozostawiając pliki dziennika nietknięte.

+42

tych, którzy przyszli tutaj, szukając odpowiedzi na pytanie typu: "jak mogę przetestować moją konfidencję?" może przyjąć to jako odpowiedź, ponieważ po prostu TESTY conf – kommradHomer

+1

powinno to być zaakceptowaną odpowiedzią – storm

29

Droga do uruchomienia wszystkich logrotate jest:

logrotate -f /etc/logrotate.conf 

że będzie działał główny plik logrotate, która obejmuje inne konfiguracje logrotate także

50

Można go uruchomić w gadatliwym życie + tryb.

logrotate -vf /etc/logrotate.conf

87

Jeśli chcesz wymusić prowadzony przez jednego konkretnego katalogu lub plików dziennika demona, zazwyczaj można znaleźć konfigurację /etc/logrotate.d, i będą one działać samodzielnie.

Należy pamiętać, że globalna konfiguracja określona w /etc/logrotate.conf nie będzie miała zastosowania, więc jeśli to zrobisz, powinieneś upewnić się, że wszystkie opcje, które chcesz, znajdują się w pliku konfiguracyjnym /etc/logrotate.d/[servicename].

Można go wypróbować z -d, aby zobaczyć, co się stanie:

logrotate -df /etc/logrotate.d/nginx 

Następnie można uruchomić (przy użyciu nginx jako przykład):

logrotate -f /etc/logrotate.d/nginx 

I dzienniki nginx sam będzie obrócone.

19

Wydaj następujące polecenie, aż do uruchomienia określonej logrotate:

logrotate -vf /etc/logrotate.d/custom 

opcje:

-v: pokazać proces

-f: zmuszanie run

zwyczaj: zdefiniowane przez użytkownika ustawienie rejestru

np .: mongodb-log

# mongodb-log rotate 

/data/var/log/mongodb/mongod.log { 
    daily 
    dateext 
    rotate 30 
    copytruncate 
    missingok 
} 
+0

plus1, aby faktycznie dostarczyć pełny przykład. PS Jak możemy określić [co logrotate faktycznie robi z plikami] (https://stackoverflow.com/questions/46578307/)? –

1

Utworzono skrypt powłoki, aby rozwiązać problem.

http://www.ict.griffith.edu.au/anthony/software/#logrotate_one

Ten skrypt będzie działał tylko plik konfiguracyjny sub-single logrotate znaleźć w „/etc/logrotate.d”, ale to od ustawienia globalne w globalnym pliku konfiguracyjnym „/etc/logrotate.conf ". Można również korzystać z innych otpions do testowania go ...

Na przykład ...

logrotate_one -d syslog 
0

edytować/var/lib/logrotate.status, aby zresetować datę "ostatniej rotacji" w pliku dziennika, który chcesz przetestować.

Następnie uruchom logrotate YOUR_CONFIG_FILE.

Można również użyć flagi --force, ale edycja logrotate.status daje większą precyzję tego, co jest i nie jest obracane.

Powiązane problemy