0Pricing
DevOps Bootcamp · Lekcja

Automatyczna rotacja logów i czyszczenie

Dbaj o wolne miejsce na dyskach, automatyzując rotację logów i usuwanie starych plików za pomocą logrotate oraz zaplanowanych skryptów opartych na find.

Automatyczna rotacja logów i czyszczenie to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Problem rozrastających się dzienników

Długotrwale działające usługi zapisują dzienniki bez końca. Bez zarządzania zapełniają dysk i powodują awarię systemu. Rotacja i czyszczenie pomagają utrzymać je pod kontrolą.

du -sh /var/log/*

Na czym polega rotacja dzienników

Rotacja zmienia nazwę bieżącego dziennika, tworzy nowy pusty plik i zachowuje ograniczoną liczbę starszych, skompresowanych kopii.

  • app.log zmienia się w app.log.1
  • starsze kopie są kompresowane za pomocą gzip
  • najstarsze kopie są usuwane

Wprowadzenie do logrotate

logrotate to standardowe narzędzie systemu Linux, które automatyzuje rotację na podstawie rozmiaru lub wieku, zgodnie z konfiguracją w /etc/logrotate.d/.

cat /etc/logrotate.conf

Podstawowa konfiguracja logrotate

Blok konfiguracji określa pliki dzienników i zasady rotacji.

/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Objaśnienie dyrektyw

Typowe dyrektywy:

  • daily rotacja codziennie
  • rotate 7 zachowanie 7 starych plików
  • compress kompresowanie rotowanych dzienników za pomocą gzip
  • missingok pomijanie pliku, jeśli go nie ma

Testowanie bez czekania

Proszę wymusić uruchomienie za pomocą -f lub wykonać próbne uruchomienie za pomocą -d, aby sprawdzić konfigurację przed zaufaniem harmonogramowi.

logrotate -d /etc/logrotate.d/myapp
logrotate -f /etc/logrotate.d/myapp

Skrypty postrotate

Wiele usług zachowuje otwarty uchwyt do starego pliku. Blok postrotate informuje usługę, aby po rotacji ponownie otworzyła dziennik.

/var/log/myapp/*.log {
    daily
    postrotate
        systemctl reload myapp
    endscript
}

Czyszczenie starych plików za pomocą find

Do doraźnego czyszczenia można użyć find wraz z -mtime, aby znaleźć pliki starsze niż N dni i je usunąć.

find /var/log/myapp -name "*.log" -mtime +30 -delete

Bezpieczny skrypt czyszczący

Proszę umieścić czyszczenie w skrypcie, który rejestruje usuwane elementy, aby zachować ścieżkę audytu.

#!/bin/bash
DIR=/var/backups
find "$DIR" -name "*.tar.gz" -mtime +14 -print -delete \
  >> /var/log/cleanup.log 2>&1

Planowanie czyszczenia

Rotację należy skonfigurować w logrotate (który jest już uruchamiany przez cron), a własne skrypty czyszczące zaplanować za pomocą osobnego wpisu w crontab.

# crontab -e
30 2 * * * /usr/local/bin/cleanup.sh

Monitorowanie użycia dysku

Proszę dodać mechanizm alarmujący po przekroczeniu przez partycję określonego progu, aby czyszczenie nigdy nie było uruchamiane zbyt późno.

USAGE=$(df --output=pcent / | tr -dc "0-9")
[ "$USAGE" -gt 90 ] && echo "Disk over 90%" | mail -s alert root

Szybkie sprawdzenie

Proszę sprawdzić swoją wiedzę na temat automatyzacji.

Podsumowanie

Zautomatyzował(a) Pan/Pani porządkowanie dzienników:

  • logrotate wykonuje rotację według wieku lub rozmiaru za pomocą rotate, compress, postrotate
  • Konfigurację można sprawdzać za pomocą -d / -f
  • Do własnego czyszczenia można użyć find -mtime +N -delete
  • Planowanie odbywa się za pomocą cron, a zabezpieczenie zapewniają alerty dotyczące użycia dysku

Często zadawane pytania

Czy lekcja „Automatyczna rotacja logów i czyszczenie” jest bezpłatna?

Tak — pełny tekst „Automatyczna rotacja logów i czyszczenie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Automatyczna rotacja logów i czyszczenie”?

Dbaj o wolne miejsce na dyskach, automatyzując rotację logów i usuwanie starych plików za pomocą logrotate oraz zaplanowanych skryptów opartych na find. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Automatyczna rotacja logów i czyszczenie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Planowanie zadań za pomocą Cron
  2. Automatyzacja administracji systemem
  3. Projekt z zaawansowanego skryptowania
  4. Automatyczna rotacja logów i czyszczenie
← Powrót do DevOps Bootcamp