Оптимизация процессов с помощью GNU Parallel

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

gnu parallelbashlinux

ℹ️ Когда нужно параллельно запускать множество команд (например, при работе с файлами, виртуальными машинами или контейнерами), GNU Parallel значительно ускорит процесс. Это утилита, которая позволяет запускать команды параллельно и управлять ими, делая их более эффективными.

🔥 Пример использования:

🖥 Допустим, у вас есть список серверов, на которых нужно выполнить команду, и вы хотите избежать последовательного выполнения. Вместо написания скрипта в цикле, используйте parallel:

cat servers.txt | parallel -j 4 ssh user@{} 'hostname && uptime'

ℹ️ Описание аргументов:

  • -j 4 – количество параллельных задач (например, 4 одновременные сессии)
  • {} – заполнитель для текущей строки из servers.txt

📂 Пример для обработки файлов:

Допустим, у вас есть папка с большим количеством файлов, которые нужно сжать:

ls *.log | parallel gzip

ℹ️ Каждый файл будет сжиматься одновременно, не дожидаясь завершения предыдущего, и вы сами можете задать нужное количество параллельных процессов. Используйте -j +0, чтобы запустить столько процессов, сколько доступно CPU.

✳️ Преимущества GNU Parallel: он не только прост в использовании, но и помогает ощутимо ускорить выполнение задач, когда каждую задачу можно выполнять независимо от других.

tags: #полезно #bash #linux

🧭 @recura_tech

Иллюстрация серверного зала с множеством стоек, прокладываемыми кабелями и несколькими ноутбуками — визуализация инфраструктуры и параллельных задач.
Визуализация серверного зала с кабельными трассами и рабочими станциями.

Читайте так же