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
- Otwórz nowy plik konfiguracyjny:
~/logrotate_access.conf - Wpisz w nim konfigurację dla plików
access.txt:/home/your-username/app/logi/access.txt{ dailymissingokrotate 7compressdelaycompressnotifempty
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 uprawnieniami640.
your-usernameiyour-groupna swoje dane użytkownika (możesz sprawdzić je poleceniemwhoamiiid -gn). - 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
-dwykonuje 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.txtzostanie przeniesiony na przykład doaccess.txt.1. - Jeśli włączona jest opcja
compress, plik zostanie skompresowany doaccess.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:
- Otwórz crontab:
crontab -e - Dodaj linię, aby uruchamiać logrotate codziennie, np. o 2:00:
0 2 * * * /usr/sbin/logrotate ~/logrotate_access.conf - Zapisz i zamknij edytor.
6. Sprawdź wyniki
- Po pierwszej rotacji pliki w katalogu
~/app/logi/powinny wyglądać tak:access.txtaccess.txt.1.gzaccess.txt.2.gz ... - Nowy plik
access.txtbędzie pusty i gotowy do przyjmowania nowych logów.