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.