JavaRush /Курси /Docker SELF /Обробка текстових даних та оновлення системи

Обробка текстових даних та оновлення системи

Docker SELF
Рівень 8 , Лекція 6
Відкрита

1. Обробка текстових даних

Сьогодні ми зберемо всі ці знання і застосуємо їх на практиці, щоб обробити текстові дані і виконати оновлення системи. Ознайомимося з реальними сценаріями використання: від аналізу системних журналів до автоматизації встановлення і налаштування пакетів.

Задача 1: Пошук помилок у журналі

Сценарій: Уявіть, що ви системний адміністратор, і вам потрібно швидко зрозуміти, що відбувається в системі. Для цього ми будемо аналізувати системні журнали (/var/log/syslog).

Крок 1: Фільтрація за ключовими словами

Почнемо з пошуку рядків, пов'язаних із помилками, використовуючи grep:

grep "error" /var/log/syslog

О, щось знайшли! Але давайте покращимо. Припустимо, ви хочете ігнорувати регістр (будь то ERROR чи error):

grep -i "error" /var/log/syslog

Тепер ми побачимо більше збігів. Але іноді потрібно знайти все, що не пов'язано із помилками:

grep -v "error" /var/log/syslog

Крок 2: Спрощення виводу за допомогою cut

Припустимо, вас цікавить лише часовий штамп і повідомлення. Давайте витягнемо відповідні колонки:

grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-

Тут ми використовуємо cut, щоб розділити рядки за пробілами -d' ', обравши колонки 1, 2, 3 (час) і решту тексту.

Задача 2: Підрахунок частоти подій

Тепер ми хочемо зрозуміти, як часто відбуваються помилки. Комбінуємо grep, cut і sort з uniq:

grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c

Ця команда:

  1. Шукає рядки з помилками за допомогою grep.
  2. Витягує лише інформацію про джерело помилки cut.
  3. Сортує дані sort, щоб uniq міг порахувати кількість повторень кожного рядка.

Результат буде виглядати так:

  10 systemd
   7 kernel
   5 cron

Помилки від systemd трапляються найчастіше. Час робити висновки!


2. Завантаження та обробка зовнішніх даних

Сценарій: Аналіз даних із зовнішнього джерела

Припустимо, нам потрібно завантажити текстовий файл із даними (наприклад, лог-файл) із веб-сервера та проаналізувати його. Зробимо це крок за кроком.

Крок 1: Завантаження файлу

Спочатку скачаємо файл за допомогою wget:

wget -O data.log http://example.com/logs/data.log

Файл завантажено і збережено як data.log. У разі помилки завантаження, додамо відновлення:

wget -c -O data.log http://example.com/logs/data.log

Якщо ви надаєте перевагу curl:

curl -o data.log http://example.com/logs/data.log

Крок 2: Пошук інформації

Тепер шукаємо рядки, що містять певний патерн, наприклад, WARNING:

grep "WARNING" data.log

Крок 3: Форматування даних з awk

Припустимо, у логу є три стовпця: дата, час і повідомлення. Ми хочемо вивести лише дату та повідомлення:

awk '{print $1, $3}' data.log

А якщо потрібно відфільтрувати рядки, де повідомлення містить слово error, можна додати умову:

awk '/error/ {print $1, $3}' data.log

3. Оновлення системи за допомогою apt-get та yum

Тепер перейдемо до більш "системних" задач. Оновлення пакетів — життєво важливий процес для підтримання безпеки і стабільності системи. Покажемо, як це робиться.

Сценарій: Оновлення системи

Крок 1: Оновлення списку пакетів

Для дистрибутивів на основі Debian:

sudo apt-get update

Для дистрибутивів на основі RedHat:

sudo yum check-update

Крок 2: Встановлення оновлень

Debian-based:

sudo apt-get upgrade
RedHat-based:
sudo yum update

Крок 3: Встановлення нового пакета

Наприклад, для встановлення текстового редактора vim:

sudo apt-get install vim
sudo yum install vim

Корисна порада

Якщо ти точно знаєш, який пакет хочеш встановити, але не впевнений у його назві, використовуй apt search або yum search:

apt search назва_пакета
yum search назва_пакета

4. Підсумкове завдання

Задача: Автоматизація оновлення та обробки даних

  1. Створити bash-скрипт, який:
    • Оновлює систему;
    • Завантажує текстовий файл (наприклад, журнал);
    • Аналізує цей файл на наявність помилок;
    • Зберігає результати аналізу в новий файл.

Ось приклад такого скрипта:

# Крок 1: Оновлення системи
echo "Оновлення системи..."
sudo apt-get update && sudo apt-get -y upgrade

# Крок 2: Завантаження файлу
echo "Завантажуємо лог-файл..."
wget -O data.log http://example.com/logs/data.log

# Крок 3: Аналіз файлу
echo "Аналізуємо лог-файл на помилки..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log

echo "Аналіз завершено. Результати збережено в analysis.log"

Збережіть цей скрипт, наприклад, як update_and_analyze.sh, задайте права на виконання:

chmod +x update_and_analyze.sh

І запустіть:

./update_and_analyze.sh

Увага: типові помилки

  • Якщо ви бачите повідомлення про "доступ заборонено", переконайтесь, що запускаєте скрипт від імені користувача з правами sudo.

  • Якщо wget або curl не встановлені, додайте їх установку на початку скрипта:

    sudo apt-get install -y wget
    

У чому практична користь?

Ці навички знадобляться тобі не тільки на роботі, але й на співбесідах. Уміння знаходити помилки в логах, фільтрувати дані та запускати оновлення системи цінується серед адміністраторів та інженерів. Скрипти дозволяють автоматизувати завдання, економлячи час і гарантують відсутність людських помилок.

P.S. Пам’ятайте, у реальному світі ви будете стикатися із завданнями, де потрібно комбінувати команди, змінювати вивід і автоматично налаштовувати систему. Сьогоднішній приклад — це просто верхівка айсберга вашої майбутньої практики.

1
Опитування
Службові утиліти в Linux, рівень 8, лекція 6
Недоступний
Службові утиліти в Linux
Службові утиліти в Linux
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ