tmux - разделение панелей и ssh на несколько серверов с помощью сценария

Пожалуйста, расследуйте (и примите участие в )рабочей группе IETF CAPPORT.https://datatracker.ietf.org/wg/capport/about/

Будут доступны новые ICMP, ответы HTTP и ответы DHCP. По мере перехода Интернета на HTTPS многие существующие методы перестанут работать.

0
03.08.2019, 06:19
1 ответ

Команды new-sessionи split-paneв tmuxпринимают команду для запуска в новой панели. Если у вас есть список из user@serverстрок в массиве, вы можете сделать это:

#!/bin/bash

ssh_list=( user1@server1 user2@server2... )

split_list=()
for ssh_entry in "${ssh_list[@]:1}"; do
    split_list+=( split-pane ssh "$ssh_entry" ';' )
done

tmux new-session ssh "${ssh_list[0]}" ';' \
    "${split_list[@]}" \
    select-layout tiled ';' \
    set-option -w synchronize-panes

Это создает список из split-paneкоманд, которые разделяют текущую панель и запускают sshна один из серверов в списке ssh_list. Мы создаем по одной такой команде для каждого из перечисленных серверов, кроме первого (, который мы будем использовать с командой new-sessionвместо ).

Команда tmuxв конце создает новый сеанс и запускает первую команду ssh, выполняет все разбиения, переставляет панели в соответствии с компоновкой tiled(альтернативы см. в руководстве tmux)и включает синхронизацию панелей.

Сеанс tmuxзавершится после завершения всех сеансов ssh.


Обновление :Интересно, что в tmux(1)руководстве не упоминается команда split-pane. Приведенный выше код все еще работает, но если вы используете более старую версию tmux, вы можете изменить split-paneна split-window(, поскольку tmux2.4, split-paneи splitpявляются синонимами для split-window).

11
28.01.2020, 02:17

Теги

Похожие вопросы