Przetwarzanie danych tekstowych i aktualizacja systemu
1. Przetwarzanie danych tekstowych
Dziś zbierzemy całą tę wiedzę i zastosujemy ją w praktyce, aby przetworzyć dane tekstowe i przeprowadzić aktualizację systemu. Poznamy realne scenariusze użycia: od analizy dzienników systemowych po automatyzację instalacji i konfiguracji pakietów.
Zadanie 1: Wyszukiwanie błędów w dzienniku
Scenariusz: Wyobraź sobie, że jesteś administratorem systemu i musisz szybko zrozumieć, co dzieje się w systemie. W tym celu będziemy analizować dzienniki systemowe (/var/log/syslog
).
Krok 1: Filtrowanie według słów kluczowych
Zaczniemy od wyszukiwania linii związanych z błędami, używając grep
:
grep "error" /var/log/syslog
O, coś znaleźliśmy! Ale poprawmy to. Załóżmy, że chcesz ignorować wielkość liter (czy to ERROR
czy error
):
grep -i "error" /var/log/syslog
Teraz zobaczymy więcej dopasowań. Ale czasami trzeba znaleźć wszystko, co nie jest związane z błędami:
grep -v "error" /var/log/syslog
Krok 2: Upraszczanie wyniku za pomocą cut
Załóżmy, że interesuje Cię tylko znacznik czasu i wiadomość. Wyciągnijmy odpowiednie kolumny:
grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-
Używamy tutaj cut
, aby podzielić linie według spacji -d' '
, wybierając kolumny 1, 2, 3 (czas) i resztę tekstu.
Zadanie 2: Liczenie częstotliwości zdarzeń
Teraz chcemy zrozumieć, jak często pojawiają się błędy. Łączymy grep
, cut
i sort
z uniq
:
grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c
Ta komenda:
- Wyszukuje linie z błędami za pomocą
grep
. - Wyciąga tylko informacje o źródle błędu
cut
. - Sortuje dane
sort
, abyuniq
mógł policzyć liczbę powtórzeń każdej linii.
Wynik będzie wyglądać tak:
10 systemd
7 kernel
5 cron
Błędy od systemd
pojawiają się najczęściej. Czas wyciągnąć wnioski!
2. Pobieranie i przetwarzanie danych zewnętrznych
Scenariusz: Analiza danych z zewnętrznego źródła
Załóżmy, że musimy pobrać plik tekstowy z danymi (na przykład plik log) z serwera internetowego i przeanalizować go. Zróbmy to krok po kroku.
Krok 1: Pobieranie pliku
Najpierw pobierzemy plik za pomocą wget
:
wget -O data.log http://example.com/logs/data.log
Plik został pobrany i zapisany jako data.log
. W przypadku błędu pobierania, dodajemy opcję wznowienia:
wget -c -O data.log http://example.com/logs/data.log
Jeśli wolisz używać curl
:
curl -o data.log http://example.com/logs/data.log
Krok 2: Wyszukiwanie informacji
Teraz szukamy wierszy zawierających określony wzorzec, na przykład WARNING
:
grep "WARNING" data.log
Krok 3: Formatowanie danych z awk
Załóżmy, że w logu są trzy kolumny: data, czas i wiadomość. Chcemy wyświetlić tylko datę i wiadomość:
awk '{print $1, $3}' data.log
A jeśli potrzeba przefiltrować wiersze, w których wiadomość zawiera słowo error
, można dodać warunek:
awk '/error/ {print $1, $3}' data.log
3. Aktualizacja systemu za pomocą apt-get
i yum
Teraz przejdźmy do bardziej "systemowych" zadań. Aktualizacja pakietów to kluczowy proces, aby utrzymać bezpieczeństwo i stabilność systemu. Pokażemy, jak to zrobić.
Scenariusz: Aktualizacja systemu
Krok 1: Aktualizacja listy pakietów
Dla dystrybucji opartych na Debian:
sudo apt-get update
Dla dystrybucji opartych na RedHat:
sudo yum check-update
Krok 2: Instalacja aktualizacji
Debian-based:
sudo apt-get upgrade
RedHat-based:
sudo yum update
Krok 3: Instalacja nowego pakietu
Na przykład, aby zainstalować edytor tekstu vim
:
sudo apt-get install vim
sudo yum install vim
Przydatna wskazówka
Jeśli dokładnie wiesz, jaki pakiet chcesz zainstalować, ale nie jesteś pewien jego nazwy, użyj apt search
lub yum search
:
apt search nazwa_pakietu
yum search nazwa_pakietu
4. Zadanie końcowe
Zadanie: Automatyzacja aktualizacji i przetwarzania danych
- Stwórz bash-script, który:
- Aktualizuje system;
- Pobiera plik tekstowy (na przykład log);
- Analizuje ten plik, szukając błędów;
- Zapisuje wyniki analizy do nowego pliku.
Oto przykład takiego skryptu:
# Krok 1: Aktualizacja systemu
echo "Aktualizacja systemu..."
sudo apt-get update && sudo apt-get -y upgrade
# Krok 2: Pobieranie pliku
echo "Pobieramy plik log..."
wget -O data.log http://example.com/logs/data.log
# Krok 3: Analiza pliku
echo "Analizujemy plik log, szukając błędów..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log
echo "Analiza zakończona. Wyniki zapisano w analysis.log"
Zapisz ten skrypt, na przykład jako update_and_analyze.sh
, nadaj prawa wykonania:
chmod +x update_and_analyze.sh
I uruchom:
./update_and_analyze.sh
Uwaga: typowe błędy
Jeśli zobaczysz komunikat "brak dostępu", upewnij się, że uruchamiasz skrypt jako użytkownik z uprawnieniami
sudo
.Jeśli
wget
lubcurl
nie są zainstalowane, dodaj ich instalację na początku skryptu:sudo apt-get install -y wget
Jaka jest praktyczna korzyść?
Te umiejętności przydadzą Ci się nie tylko w pracy, ale także na rozmowach kwalifikacyjnych. Umiejętność znajdowania błędów w logach, filtrowania danych i uruchamiania aktualizacji systemu jest ceniona wśród administratorów i inżynierów. Skrypty pozwalają automatyzować zadania, oszczędzając czas i gwarantując brak błędów ludzkich.
P.S. Pamiętaj, w realnym świecie będziesz spotykać się z zadaniami, w których trzeba łączyć polecenia, modyfikować dane wyjściowe i automatycznie konfigurować system. Dzisiejszy przykład to tylko wierzchołek góry lodowej Twojej przyszłej praktyki.
GO TO FULL VERSION