TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #446 1.11K
Обработка SSH-команд через connection pooling

Если вам нужно выполнить десятки или сотни SSH-команд подряд, стандартный подход ssh host cmd превращается в ад: каждый вызов открывает новое TCP-соединение, делает handshake, обмен ключами, проверку known_hosts и все это ради одной короткой команды. Но SSH умеет работать совершенно иначе, через multiplexing. Это когда одно физическое SSH-соединение становится трубой для десятков логических каналов. Команды выполняются без задержек, почти как локальные.

▪️ Включаем connection pooling. Создаем master-socket:


ssh -M -S /tmp/ssh-sock-%r@%h:%p user@server


-M - включить master-режим,
-S - путь до сокета.

Теперь вторичные команды идут через master:


ssh -S /tmp/ssh-sock-%r@%h:%p user@server "hostname"
ssh -S /tmp/ssh-sock-%r@%h:%p user@server "uptime"
ssh -S /tmp/ssh-sock-%r@%h:%p user@server "df -h"


Все эти вызовы выполняются почти мгновенно.

▪️ Автоматизация: ~/.ssh/config. Чтобы не писать все вручную:


Host *
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m


Теперь SSH сам создает и держит мастер-сессию 10 минут после последней команды.

▪️ Массовый запуск команд по списку


#!/bin/bash

for host in $(cat hosts.txt); do
ssh "$host" "uptime" &
done

wait


▪️ Завершение мастер-сессии


ssh -O exit -S ~/.ssh/cm-user@host:22 host


BashTex 📱 #bash #utils
  • 👍 7
  • 🔥 2
More from @bash_tex
  1. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  2. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  3. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  4. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  5. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  6. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
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 →