Executando script / comando local no servidor remoto

1

Eu tenho um comando que quero executar na máquina B da máquina A. Se eu executar o comando na máquina B localmente, ele funcionará bem.

Aqui está o comando:

for n in 'find /data1/ -name 'ini*.ext'' ; do  echo cp $n "'dirname $n '/' basename $n 
.ext'"; done

Da máquina A, eu emito este comando

ssh user@machineB  for n in 'find /data1/ -name 'ini*jsem'' ; do  echo cp $n "'dirname $n '/' basename $n .jsem'"; done

Mas recebo o erro syntax error near unexpected token do

O que está errado? Eu acho que tem algo a ver com aspas duplas, aspas simples, ponto e vírgula, porque executar o comando ssh user@machineB ls funciona bem. Então, não questão de autenticação ou outra coisa.

Obrigado

    
por Ian McGrath 28.03.2012 / 10:34

1 resposta

1

O problema é que seu shell local está interpretando parte do comando. Você precisa citar o comando inteiro para que o shell remoto o execute.

ssh user@machineB 'for n in 'find /data1/ -name "ini*jsem"' ; do  echo cp $n "'dirname $n '/' basename $n .jsem'"; done'
    
por 02.06.2012 / 06:08