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

Iulian
źródło
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
}
Deeh
źródło
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

Alex
źródło
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