Ponieważ strona podręcznika nie odpowiada na moje pytanie i nie chcę wymuszać cyklu rotacji, postanowiłem zadać pytanie tutaj.
Strona podręcznika dla programu logrotate podaje następujący przykład:
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail [email protected]
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Wszystkie przykłady z symbolami wieloznacznymi zawierają tylko jeden wpis. Teraz interesuje mnie to, czy ten jest również dozwolony:
/var/log/httpd/*.log /var/log/httpd/*/*.log {
# ... same as above
}
Oto uzasadnienie: mam wiele vhostów i podzieliłem je przez użytkownika, który „jest właścicielem” tych vhostów. Ponieważ pliki dziennika są odczytywalne na całym świecie, chcę podłączyć folder do katalogu domowego użytkownika, ale ogranicz go do plików dziennika, które użytkownik „posiada”, co jest najłatwiejsze dzięki oddzieleniu dzienników na foldery (i powiązanie -montowanie i tak wymaga tego schematu). Dlatego szukam rozwiązania, aby obrócić zarówno pliki dziennika w ramach, /var/log/httpd
jak i wszystkie pliki dziennika w podkatalogach tego katalogu - bez konieczności wyświetlania każdego podkatalogu według nazwy.
Zasadniczo strona man nie daje pojęcia, czy wiele reguł jest w ogóle możliwych dla reguł wieloznacznych, czy tylko dla pełnych ścieżek. Używam Logrotate w wersji 3.7.8-6, która jest dostarczana z Debianem „Squeeze”, ale uważam, że niekoniecznie jest to specyficzne dla dystrybucji lub wersji programu.
Chciałem tylko to wyjaśnić, ponieważ właśnie to tutaj znalazłem, szukając sposobu, jak to zrobić,
Dozwolone jest określenie wielu plików dziennika dla pojedynczej konfiguracji, np
źródło
Ze strony podręcznika użytkownika dla logrotate :
Pamiętaj, aby zmodyfikować lub usunąć znaki cudzysłowu przy przechodzeniu od jednego do wielu wzorów:
To działa:
to też działa:
To nie działa:
i ani to:
Porównaj z przypadkiem pojedynczego wzoru.
To działa:
i to też działa:
Testowane z logrotate 3.10.0
źródło
"/var/space /log/*.log" "/var/log/*.blog"