ssh preservar ambiente

0

Eu quero enviar um comando para um servidor cliente

ssh <client-machine> command

No entanto, o comando é um alias definido na máquina que envia o comando. Também uso variáveis no script de comando como:

export PORJECT=submariner
export location=/under/water
export PWD=$PWD

Alguma maneira simples de preservar tudo?

    
por Martin 28.03.2018 / 15:05

1 resposta

2

Você sempre pode fazer:

{
   alias
   export -p
   echo command
} | ssh host bash -O expand_aliases

(assumindo que bash é o shell usado localmente).

Ou seja, despejar a definição de todos os aliases e env vars conhecidos para o shell remoto interpretar antes de executar o command especificado.

Note que é importante que seja o mesmo shell usado em ambas as extremidades, de preferência a mesma versão. Além disso, a mesma localidade (e, de preferência, as mesmas bibliotecas de manipulação de localidade).

    
por 28.03.2018 / 15:17