Logrotate

Aby skonfigurować i uruchomić logrotate dla plików access.txt w katalogu ~/app/logi/, wykonaj poniższe kroki:


1. Przygotuj katalog i pliki logów

Upewnij się, że katalog i pliki istnieją. Jeśli nie, stwórz je:

mkdir -p ~/app/logi
touch ~/app/logi/access.txt

2. Utwórz niestandardową konfigurację dla logrotate

  1. Otwórz nowy plik konfiguracyjny:
    ~/logrotate_access.conf
  2. Wpisz w nim konfigurację dla plików access.txt:
    /home/your-username/app/logi/access.txt
    { daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 your-username your-group }
    Opis opcji:
    • /home/your-username/app/logi/access.txt – pełna ścieżka do pliku logów.daily – rotacja codziennie.

    • missingok – ignoruje, jeśli plik nie istnieje

    • rotate 7 – przechowuje logi z ostatnich 7 dni

    • compress – kompresuje starsze logi (tworzy .gz)

    • delaycompress – kompresuje logi dzień po rotacji

    • notifempty – nie obraca pustych plików

    • create 640 your-username your-group – tworzy nowy plik z uprawnieniami 640.
    Uwaga: Zamień your-username i your-group na swoje dane użytkownika (możesz sprawdzić je poleceniem whoami i id -gn).
  3. Zapisz plik i wyjdź z edytora (w nano: CTRL+O, ENTER, CTRL+X).

3. Przetestuj konfigurację

Sprawdź, czy konfiguracja działa poprawnie:

logrotate -d ~/logrotate_access.conf
  • Opcja -d wykonuje symulację bez wprowadzania zmian.
  • Jeśli konfiguracja jest poprawna, zobaczysz, jakie operacje zostałyby wykonane.

4. Wymuś rotację

Aby uruchomić rotację ręcznie, wykonaj:

logrotate -f ~/logrotate_access.conf

Po tej operacji:

  • Stary plik access.txt zostanie przeniesiony na przykład do access.txt.1.
  • Jeśli włączona jest opcja compress, plik zostanie skompresowany do access.txt.1.gz.
  • Powstanie nowy, pusty plik access.txt.

5. Zautomatyzuj logrotate za pomocą cron

Aby logrotate działało automatycznie, dodaj je do crona:

  1. Otwórz crontab: crontab -e
  2. Dodaj linię, aby uruchamiać logrotate codziennie, np. o 2:00:
    0 2 * * * /usr/sbin/logrotate ~/logrotate_access.conf
  3. Zapisz i zamknij edytor.

6. Sprawdź wyniki

  1. Po pierwszej rotacji pliki w katalogu ~/app/logi/ powinny wyglądać tak:
    access.txt
    access.txt.1.gz
    access.txt.2.gz ...
  2. Nowy plik access.txt będzie pusty i gotowy do przyjmowania nowych logów.


Zobacz też:
https://iqhost.pl/blog/jak-uzywac-logrotate-do-rotacji-i-archiwizacji-logow-systemowych-w-systemie-linux