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
Ця команда:
- Шукає рядки з помилками за допомогою
grep. - Витягує лише інформацію про джерело помилки
cut. - Сортує дані
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. Підсумкове завдання
Задача: Автоматизація оновлення та обробки даних
- Створити 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. Пам’ятайте, у реальному світі ви будете стикатися із завданнями, де потрібно комбінувати команди, змінювати вивід і автоматично налаштовувати систему. Сьогоднішній приклад — це просто верхівка айсберга вашої майбутньої практики.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ