За две недели разобрали ws и аналоги (tmuxinator, tmuxp, sesh) — все требуют бинарник или Python-пакет. Если серверов немного, результат собирается из ~/.ssh/config и десятка строк bash.
#!/usr/bin/env bash
set -euo pipefail
hosts=$(awk '/^Host / && $2 !~ /\*/ {print $2}' ~/.ssh/config)
for h in $hosts; do
sess=$(ssh -o ConnectTimeout=2 "$h" tmux ls 2>/dev/null || true)
[ -n "$sess" ] && printf "%-15s %s\n" "$h" "$sess"
done
Подключение — через fzf:
target=$(bash list.sh | fzf | awk '{print $1}')
[ -n "$target" ] && ssh -t "$target" tmux attach
Нет SQLite-кэша и git-статуса — на десятке хостов опрос занимает пару секунд. Разрастётся до полусотни — смысл смотреть на ws.
#linux #tmux #bash #ssh
