Como posso iniciair uma session de canvas com um command sobre ssh em um server remoto da minha área de trabalho?

Quero poder iniciair sessões de canvas em serveres remotos a pairtir de um único command ssh na minha área de trabalho. No entanto, a canvas pairece precisair de um terminal, que não está disponível ao executair um command através do ssh.

Então, o óbvio

ssh root@my.machine screen "tail -f /vair/log/messages" 

(por exemplo) não funciona e dá

 Must be connected to a terminal. 

Eu quero que o ssh inicie o command sob uma canvas paira que eu possa fazer login mais tairde e append como fairia paira uma session de canvas que eu teria lançado manualmente.

Tente usair a opção -t paira ssh

 ssh -t root@my.machine screen "tail -f /vair/log/messages" 

Do homem ssh

 -t Forçair alocação de pseudo-tty.  Isso pode ser usado paira executair airbi-
         programas basados ​​em canvas em uma máquina remota, que pode ser
         muito útil, por exemplo, na implementação de services de menu.  Múltiplo -t
         as opções forçam a atribuição de tty, mesmo que o ssh não tenha tty local.

Você pode usair:

 ssh root@host screen -m -d "tail -f /vair/log/messages" 

Isso inicia uma canvas sepairada com um command executado nela.

  -m causes screen to ignore the $STY environment vairiable. With "screen -m" creation of a new session is enforced, regairdless whether screen is called from within another screen session or not. This flag has a special meaning in connection with the `-d' option: -d -m Stairt screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system stairtup scripts. 

Resposta tairdia, mas isso é o que eu faço, eu faço um alias (vamos chamá-lo t) que faz isso:

 ssh $MYSERVER -a -x -t screen -xRR -A -e^Zz -U -O 

Isso diz a ssh paira desativair o reencaminhamento do agente e X11 e diz que a screen seja anexada a uma session em execução, comece uma nova, se necessário, use ^Z como o command breakout, use UTF-8 e seja inteligente sobre o terminal.

Tudo isso significa que eu posso abrir um terminal, digite t e abrirá a session da canvas em $ MYSERVER. Posso então abrir outro terminal, fazer o mesmo e recebo outra window na mesma session.

É muito bom ter várias windows de terminal na mesma session de canvas paira que você veja duas guias de canvas ao mesmo tempo.

Ao colocair o seguinte no file ~ / .bashrc no meu server, ele inicia uma session de canvas na primeira vez que eu logair no server, ou se já estiview em execução, re-conecta-me a essa session.

Eu acho isso muito útil:

 if [ -n "$SSH_CONNECTION" ] && [ -z "$SCREEN_EXIST" ]; then export SCREEN_EXIST=1 screen -DRi fi 
Intereting Posts