Реальные примеры использования конвейеров Linux
В этом заключительном шаге вы изучите несколько реальных примеров использования конвейеров Linux для анализа файлов журналов (log files), обработки файлов данных и решения распространенных задач системного администрирования.
Анализ файлов журналов
Системным администраторам часто необходимо извлекать полезную информацию из файлов журналов. Давайте использовать конвейеры для анализа файла server_log.txt:
- Подсчет количества вхождений каждого уровня журнала (INFO, WARNING, ERROR):
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Вывод:
4 INFO
3 ERROR
2 WARNING
- Извлечение всех меток времени (timestamps) и уровней журнала:
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
Вывод:
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
Обработка данных CSV
Давайте использовать конвейеры для анализа файла sales.csv:
- Извлечение и подсчет уникальных проданных продуктов:
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
Команда tail -n +2 пропускает строку заголовка (header line) CSV-файла.
Вывод:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Вычисление общего количества проданных единиц:
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
Вывод:
113
Этот конвейер извлекает третий столбец (Units), объединяет все значения со знаками "+", а затем использует калькулятор bc для вычисления суммы.
Задачи мониторинга системы
Конвейеры Linux также полезны для задач мониторинга и администрирования системы:
- Вывод списка 5 процессов, потребляющих больше всего памяти:
ps aux | sort -k 4 -r | head -6
Эта команда выводит список процессов, отсортированных по 4-му столбцу (использование памяти) в обратном порядке, и показывает первые 6 строк (включая заголовок).
- Поиск всех файлов размером более 10 МБ и их сортировка по размеру:
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
Эта команда покажет наши большие тестовые файлы, отсортированные по размеру. Вывод должен выглядеть примерно так:
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
Этот пример демонстрирует поиск и сортировку файлов по размеру. Файлы были созданы во время установки специально для того, чтобы показать, как работает фильтрация по размеру файла в Linux.
Эти примеры демонстрируют, как конвейеры Linux можно использовать для эффективного решения реальных задач. Объединяя простые команды, вы можете создавать мощные рабочие процессы обработки данных, не написав сложных скриптов или программ.