Contents

Brakuje miejsca na dysku w systemie Linux? Sprawdź logi!

Szybkie linki

⭐ Dlaczego dzienniki zajmują tak dużo miejsca na dysku?

⭐ Znajdowanie dzienników

⭐ Jak Linux obraca pliki dzienników

⭐ Które dzienniki można bezpiecznie usunąć?

⭐ Jak naprawić to, co wypełnia dzienniki

Kluczowe wnioski

System operacyjny Linux generuje znaczne ilości danych dziennika, które mogą zajmować znaczną ilość miejsca na dysku twardym lub dysku SSD.

Mechanizm systemu zazwyczaj wykorzystuje metodę kompresji zarchiwizowanych dzienników w celu zaoszczędzenia miejsca na urządzeniu.

Użycie polecenia journalctl lub tail -f umożliwia przeglądanie wpisów dziennika i wskazywanie potencjalnie zakłócających procesów, umożliwiając skuteczne rozwiązywanie problemów i rozwiązywanie problemów.

Pomimo postrzegania systemów Linux jako oszczędnych i wydajnych, użytkownicy mogą czasami napotkać przypadki, w których dostępna pamięć jest wyczerpywana w nieoczekiwanym tempie. Istotne jest, aby zidentyfikować pierwotną przyczynę takich zdarzeń poprzez zbadanie plików dziennika systemu. Zapisy te mogą zapewnić cenny wgląd w potencjalne przyczyny i zaoferować wskazówki, jak skutecznie im zaradzić.

Dlaczego dzienniki zajmują tak dużo miejsca na dysku?

Pliki dziennika odgrywają kluczową rolę w utrzymaniu systemu Linux, zapewniając wgląd w jego operacje i umożliwiając rozwiązywanie wszelkich napotkanych problemów. Podobnie do Podglądu zdarzeń w systemie Windows, demony rejestrujące Linuksa oferują środki do monitorowania aktywności systemu i diagnozowania problemów. Warto zauważyć, że pliki dziennika zazwyczaj nie zajmują dużo miejsca, ponieważ większość dystrybucji posiada mechanizmy regulujące ich wykorzystanie na dysku.

W przeszłości pliki dziennika systemu Linux składały się zazwyczaj z danych tekstowych. Jednak wraz z rosnącą liczbą znanych dystrybucji, które zaczęły wykorzystywać systemd do zarządzania swoimi systemami operacyjnymi, te pliki dziennika istnieją teraz w formie binarnej i są nadzorowane przez journald, który sam w sobie jest usługą systemd. W zależności od używanej dystrybucji, rsyslog lub syslog-ng mogą być stosowane jako alternatywna metoda obsługi takich danych dziennika.

W celu zaoszczędzenia miejsca na dysku twardym komputera, powszechną praktyką w systemach jest okresowe archiwizowanie i usuwanie nieaktualnych plików dziennika, które nie są już istotne lub potrzebne. Proces ten polega na kompresji i usuwaniu starszych danych w celu zrobienia miejsca na nowsze informacje, które mogą mieć większe znaczenie.

Często zakłada się, że pliki dziennika nie zajmują znacznej przestrzeni dyskowej; jednak anomalna operacja może generować wpisy dziennika w tempie przekraczającym zdolność systemu do ich rotacji i efektywnego zarządzania nimi.

Jeśli odkryłeś, że dostępne miejsce na dysku nieoczekiwanie się zmniejszyło i nie jesteś w stanie zidentyfikować żadnych ostatnio pobranych plików jako źródła tego problemu, możliwe jest, że odpowiedzialne jest za to nagromadzenie danych w dzienniku systemu Linux. Aby rozwiązać tę trudną sytuację, należy określić konkretną zawartość dzienników systemowych, która zużywa cenną przestrzeń dyskową i wdrożyć niezbędne środki naprawcze.

Polecenie du , po wywołaniu z opcją -h , jest skutecznym sposobem na ustalenie ilości miejsca na dysku aktualnie wykorzystywanego przez pliki i katalogi w określonym katalogu lub w wielu katalogach w systemie.

 du -h /var/log 

Zostanie wyświetlone wyliczenie wszystkich podkatalogów wraz z ich łączną pojemnością:

/pl/images/du-h-var-log.png

Znajdowanie dzienników

Korzystanie ze współczesnej dystrybucji Linuksa wykorzystującej systemd wymaga narzędzia JournalTL (journalt) do badania danych dziennika. Miejsce przechowywania tych dzienników zależy od konkretnego wariantu systemu operacyjnego i może znajdować się w katalogu “/var/log/journal” lub “/run/log/journal”, z których oba są zwykle zlokalizowane pod woluminem głównego systemu plików.

/pl/images/journalctl-logs.png

Aby uzyskać dostęp do plików dziennika za pomocą terminala, wpisz “journald” w wierszu poleceń. Ponadto istnieje kilka wygodnych alternatyw wiersza poleceń dostępnych do określonych celów. Na przykład, aby przejrzeć komunikaty startowe, należy użyć opcji “-b”:

 journalctl -b 

Użycie flagi -f umożliwia użytkownikom przeglądanie zarejestrowanych komunikatów systemowych na żywo i na bieżąco.

Jeśli system operacyjny wykorzystuje inny mechanizm inicjowania niż systemd, pliki dziennika będą znajdować się w katalogu /var/log. Z drugiej strony, nawet jeśli używany jest systemd, niektóre aplikacje mogą nadal przechowywać swoje dane dziennika w tym folderze. Pliki dziennika są nieupiększonymi dokumentami tekstowymi i mogą być przeglądane przy użyciu konwencjonalnego narzędzia do paginacji, na przykład “less”.

Na przykład, aby przeczytać dziennik systemowy:

 less /var/log/syslog

Pełne informacje zawarte w pliku dziennika, składające się z wielu linii, które potencjalnie mogą liczyć tysiące, zostaną wyświetlone do wglądu.

/pl/images/journactl-f.png

Można również obserwować jego postęp na żywo poprzez wykorzystanie modyfikatora “-f” polecenia tail, wykonując odpowiednie polecenie w terminalu lub wierszu polecenia.

 tail -f /var/log/syslog

Jak Linux rotuje pliki dziennika

/pl/images/logrotate-service.png

Obecność plików w katalogu /var/log noszących etykiety kończące się na “log.N.gz”, gdzie N reprezentuje wartość arytmetyczną, oznacza działanie mechanizmu systemu do archiwizacji nieaktualnych rekordów. Zazwyczaj większość systemów operacyjnych zawiera aplikację znaną jako “logrotate”, która wykonuje tę funkcję autonomicznie. Logrotate może być skonfigurowany do wykonywania jako zaplanowane zadanie inicjowane przez demona cron lub uruchamiane za pomocą timera systemd.

Logrotate jest zwykle aktywowany w większości dystrybucji codziennie, z podstawową funkcją kompresji zarchiwizowanych plików dziennika poprzez wykorzystanie technologii gzip, którą można zidentyfikować po obecności rozszerzeń plików “.gz” dołączonych do skompresowanych plików. Logrotate wykorzystuje określone progi, takie jak wiek lub rozmiar pliku, aby określić, kiedy powinna nastąpić kompresja, jednocześnie implementując dodatkowy próg do usuwania nieaktualnych plików dziennika z systemu.

Standardowe ustawienia logrotate powinny być wystarczające dla większości użytkowników komputerów stacjonarnych. Jednak ci, którzy chcą dostosować jego działanie, mogą to zrobić poprzez zmianę pliku konfiguracyjnego znajdującego się pod adresem /etc/logrotate.conf w funkcji nadzorczej. Dodatkowo należy rozważyć modyfikację konfiguracji harmonogramu cron lub timera systemd, co zazwyczaj leży w gestii administratorów serwerów.

Lepiej jest naprawić to, co wypełnia dzienniki, niż modyfikować pliki konfiguracyjne w celu zaoszczędzenia miejsca na dysku. Jeśli koniecznie musisz zmienić konfigurację, możesz przeczytać stronę podręcznika logrotate .

Które logi można bezpiecznie usunąć?

/pl/images/var-log.png

W przypadkach, gdy konieczne jest odzyskanie dodatkowej przestrzeni dyskowej, a standardowe procedury zostały wyczerpane, można rozważyć usunięcie plików dziennika skompresowanych za pomocą gzip, oznaczonych rozszerzeniem “.gz”. Biorąc jednak pod uwagę, że dokumenty te odnoszą się do funkcjonowania systemu, muszą one zostać usunięte pod nadzorem uprzywilejowanego użytkownika. Polecenie “rm” może być wykorzystane do tego celu, wymagając uprawnień administracyjnych do skutecznego wykonania.

 sudo rm /var/syslog/syslog.*gz 

Ta instrukcja usunie wszystkie pliki, które mają w nazwie “syslog” i kończą się na “.gz”.

Podczas korzystania z polecenia sudo do wykonywania potencjalnie szkodliwych lub destrukcyjnych operacji, takich jak usuwanie plików za pomocą rm , niezwykle ważne jest zachowanie szczególnej ostrożności i staranności, aby uniknąć wszelkich niezamierzonych konsekwencji, które mogą wynikać z niewłaściwego użytkowania.

Ogólnie rzecz biorąc, nie zaleca się usuwania plików z katalogów systemowych bez dokładnego zrozumienia potencjalnych konsekwencji, ale usunięcie zarchiwizowanych plików dziennika nie powinno powodować żadnych problemów, o ile są one nieobecne. Jeśli jednak pojawi się problem, odzyskanie informacji z poprzednich rekordów dziennika może być konieczne do celów rozwiązywania problemów.

Jak naprawić to, co wypełnia dzienniki

Jedną ze skutecznych metod określania zawartości plików dziennika jest użycie poleceń journalctl lub tail -f, w szczególności skupiając się na powtarzających się komunikatach o błędach, które mogą się w nich pojawiać.

Aby złagodzić problem niewystarczającej ilości miejsca na dysku, konieczne jest zidentyfikowanie i zakończenie błędnego procesu odpowiedzialnego za zużycie pamięci. W przypadkach, gdy źródło problemu pozostaje niejasne, pomocne może okazać się skorzystanie z zasobów internetowych lub zwrócenie się o pomoc do kanałów wsparcia systemu operacyjnego. Po rozwiązaniu pierwotnej przyczyny, wyeliminowanie nieaktualnych plików dziennika uwolni dodatkową przestrzeń dyskową bez ryzyka. Po usunięciu tej usterki powinno nastąpić zauważalne zwiększenie dostępnej przestrzeni dyskowej.