ℹ️ Если ваш Bash-скрипт выполняет большое количество задач (например, копирование файлов, обработка данных или запросы к API), вместо последовательного выполнения можно использовать параллельные процессы, чтобы значительно ускорить выполнение.
🔥 Пример:
🖥 1. Последовательное выполнение (медленно)
for url in $(cat urls.txt); do
curl -O "$url"
done
❔ Этот код скачивает файлы по одному. Это медленно, особенно если у вас много URL.
👨💻 2. Параллельное выполнение (быстро)
Используем встроенные возможности Bash для запуска задач в фоне:
for url in $(cat urls.txt); do
curl -O "$url" &
done
wait
❔ Добавление & запускает команды в фоне, а wait дожидается завершения всех процессов.
⚙️ 3. Управление количеством параллельных процессов
Чтобы избежать перегрузки системы, используйте xargs с ограничением количества потоков:
cat urls.txt | xargs -n 1 -P 5 curl -O
ℹ️ Здесь:
- •
-n 1— передаёт один аргумент за раз. - •
-P 5— ограничивает выполнение максимум до 5 процессов одновременно.
📑 4. Улучшение логирования
Для лучшего отслеживания выполненных задач можно добавить вывод логов:
cat urls.txt | xargs -n 1 -P 5 -I {} bash -c 'echo "Downloading {}"; curl -O "{}"'
✳️ Этот метод особенно полезен для DevOps-задач, автоматизации обработки данных и CI/CD пайплайнов.
tags: #полезно #bash #linux
🧭 @recura_tech



