TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #340 1.48K
Одновременный запуск команд на нескольких хостах

Иногда нужно быстро выполнить одну и ту же команду на нескольких серверах. Удобные тулзы для этого есть (например, pssh, ansible), но что если хочется сделать это в чистом bash, без сторонних зависимостей? Попробуем реализовать, основная идея такова:

📍список хостов хранится в текстовом файле;
📍скрипт пробегает по ним циклом и запускает команду через ssh;
📍чтобы все шло параллельно - используем background (&) и ограничитель числа потоков.

🛠 Пример скрипта


#!/bin/bash
# parallel-ssh.sh
# Одновременное выполнение команд на хостах

HOSTFILE="hosts.txt"
CMD="$*"
MAX_PARALLEL=5 # ограничение параллельных подключений

if [[ -z "$CMD" ]]; then
echo "Использование: $0 'команда для выполнения'"
exit 1
fi

sem=0
while read -r host; do
[[ -z "$host" || "$host" =~ ^# ]] && continue

{
echo ">>> [$host]"
ssh -o BatchMode=yes -o ConnectTimeout=5 "$host" "$CMD" 2>&1 | sed "s/^/[$host] /"
} &

((sem++))
if (( sem >= MAX_PARALLEL )); then
wait -n
((sem--))
fi
done < "$HOSTFILE"

wait


▪️ Пример hosts.txt


server1
192.168.1.12
192.168.1.15


▪️ Запуск


./parallel-ssh.sh "uptime"


Вывод будет помечен [host], чтобы не путались строки.

BashTex 📱 #bash
  • 👍 9
More from @bash_tex
  1. Oct 9, 2026BashTex 📱 #мем
  2. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  3. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  4. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  5. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  6. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →