Usuń pliki z Logrotate


13

Czy można po prostu usunąć pliki dziennika w katalogu, używając logrotate bez ich obracania? Mamy aplikację, która generuje dzienniki w następującym formacie: app.log.DD_MM_RRRR. Nie powiodło się z Logrotate o następującej konfiguracji:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Czy log rotate może to zrobić, czy powinienem po prostu napisać skrypt i umieścić go w cronie?

Najlepszy, -Iulian


Jeśli nie potrzebujesz tych dzienników, dlaczego nie wyłączyć funkcji rejestrowania w aplikacji?
— Deeh,

1
Przykro mi, ale nie mogę tego uznać za odpowiedź Deeh. Aby zaspokoić twoją ciekawość, potrzebujemy tych dzienników do różnych operacji, takich jak debugowanie, po prostu nie chcemy ich tam gnić.
— Iulian

Odpowiedzi:


16

W takim przypadku możesz użyć postrotate. W poniższym przykładzie postrotate usunie pliki, które są starsze niż 1 dzień po obróceniu dzienników, możesz je zmodyfikować zgodnie z własnymi potrzebami.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}

4

Celem programu logrotate jest utrzymanie niestandardowej liczby plików dziennika w niestandardowym przedziale czasu. Użyłbym crona do twojego zadania. Więcej informacji o tym, co możesz zrobić z logrotate tutaj: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet


2
Nie publikuj odpowiedzi zawierających tylko linki, aby zapobiec gniciu linków. Zamiast tego dodaj do swojej odpowiedzi najistotniejsze informacje z linku lub opublikuj link jako komentarz zamiast odpowiedzi. Więcej informacji można znaleźć w tym artykule w centrum pomocy.
— Sven
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.