compartilham sessões tmux locais e remotas

7

Parece haver muitas perguntas relacionadas, mas gostaria de ver uma solução específica.

Então, eu costumava ser um ávido usuário iTerm2 (irrelevante) e comecei a usar o tmux remotamente porque eu quero evitar tempos limite do SSH , ou seja, minha principal preocupação é que Se um apocalipse nuclear destruir meu laptop, posso pegar o servidor remoto de onde parei.

Agora eu também uso localmente. Existe uma maneira de limpar misturar as duas coisas? Eu só vejo duas opções.

  • tmux no local e na máquina remota (esta é a minha atual). As sessões são completamente independentes, se o meu local falhar, o remoto sobreviverá, etc .; infelizmente não pode haver interação, então tenho que esquecer de preservar o histórico de copiar e colar (corrija-me se estiver errado) e coisas semelhantes.
  • ssh do tmux local e anexa a um tmux remoto. Desta forma, terei uma sessão remota do tmux dentro de uma janela local do tmux, o que parece extremamente complicado de usar diariamente.

Então, principalmente, o problema é que eu quero meu bolo e comê-lo também. Eu quero manter meu trabalho na conexão ssh (e multi-tarefa dentro dele enquanto estiver vivo), mas eu também quero compartilhar meu trabalho entre todos os meus painéis tmux, desconsiderando se eles são locais ou remotos. É possível?

    
por marco 21.08.2014 / 21:30

3 respostas

2

Meu conselho:

Use mosh to connect to the remote server, once the session starts, fire up tmux

mosh foi construído para o cenário comum, mas menos apocalíptico, de uma sessão remota conectada por meio de um link de dados celular , antes de 3G era mesmo uma coisa.

Na página mosh man:

mosh (mobile shell) is a remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local echo and line editing of user keystrokes.

Compared with ssh, mosh is more robust — its connections stay up across sleeps and changes in the client's IP address — and more responsive, because the protocol is tolerant of packet loss and the client can echo most keystrokes immediately, without waiting for a network round-trip.

mosh uses ssh to establish a connection to the remote host and authen‐ ticate with existing means (e.g., public-key authentication or a pass‐ word). mosh executes the unprivileged mosh-server helper program on the server, then closes the SSH connection and starts the mosh-client, which establishes a long-lived datagram connection over UDP.

Naquela época, se você usasse seu laptop para fazer login no seu servidor ssh, por exemplo, em um trem de passageiros, usando um modem " pc-card " CDMA no seu rápido compaq armada (omg pentium!), ou usando um cabo serial para ligar esse palma VII coisa que tenha algum tipo de serviço de dados; você teria sua sessão desconectada toda vez que mudasse de uma célula de rádio para a próxima, o que em um trem de passageiros poderia ser a cada 3 a 5 minutos.

Isso seria um cenário equivalente para a antiga União Soviética derrubar o plutônio ao longo da pista do trem, do ponto de vista da conexão ...

so mosh para o resgate. Ele usa o ssh para autenticar, mas o restante da sessão é manipulado pelo mosh tunnel, que foi especificamente projetado para resiliência de sessão em links flaky.

Da perspectiva do usuário, hoje em dia é imperceptível. Eu ainda o uso para o ssh, er ... mosh do meu dispositivo Android usando termux , mesmo que os links no 4G não tenham mais esse problema.

Outro caso de uso freqüente foi conexões ssh através de links de modem escamosos sobre POTS, que interromperiam a sessão se sua irmã decidisse que ela queria ligar para o namorado e pegar o outro telefone FIXED da casa , mesmo que você tenha avisado que você estaria baixando o novo álbum do U2 em formato MP3 de um sombrio site WaReZ.

Então, se você quiser usá-lo, instale o mosh usando o gerenciador de pacotes da sua distro no servidor e cliente (não é necessário root, ele instalará o usuário se não puder obter root, útil para dispositivos Android) e faça:

terminus:~>> mosh trantor.mydoman.tld tmux
Last login: Wed Apr  4 21:27:38 2018 from XX.XXX.XXX.XXX
trantor:~>> 

Aproveite! =)

    
por 05.04.2018 / 06:33
1

o compartilhamento de janelas ajudaria?

tmux new-session -s shared "tmux new-window -n CoolName"
tmux link-window -s <src-window> -t <dst-window>
tmux link-window -s shared:CoolName -t $index#  (target is optional)
    
por 30.03.2018 / 19:44
0

Existem algumas ideias no link para como fazer isso no tmux. Basicamente, use uma chave para alternar o acesso ao tmux interno.

A configuração que funcionou para mim foi a que estava no link :

unbind C-b
set -g prefix C-a

set -g status-bg colour40
setw -g window-status-current-bg colour40

bind -n C-t new-window -a
bind -n S-left  prev
bind -n S-right next
bind -n S-C-left  swap-window -t -1
bind -n S-C-right swap-window -t +1

bind -n M-F11 set -qg status-bg colour25
bind -n M-F12 set -qg status-bg colour40
bind -n S-up \
    send-keys M-F12 \; \
    set -qg status-bg colour25 \; \
    unbind -n S-left \; \
    unbind -n S-right \; \
    unbind -n S-C-left \; \
    unbind -n S-C-right \; \
    unbind -n C-t \; \
    set -qg prefix C-b
bind -n S-down \
    send-keys M-F11 \; \
    set -qg status-bg colour40 \; \
    bind -n S-left  prev \; \
    bind -n S-right next \; \
    bind -n S-C-left swap-window -t -1 \; \
    bind -n S-C-right swap-window -t +1 \; \
    bind -n C-t new-window -a -c "#{pane_current_path}" \; \
    set -qg prefix C-a
    
por 24.07.2018 / 07:44

Tags