Ejecutando script / comando local en servidor remoto

1

Tengo un comando que deseo ejecutar en la máquina B desde la máquina A. Si ejecuto el comando en la máquina B localmente, funciona bien.

Aquí está el comando:

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

Desde la máquina A, emito este comando.

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

Pero me da error syntax error near unexpected token do

¿Qué está mal? Creo que tiene algo que ver con comillas dobles, comillas simples, punto y coma porque la ejecución del comando ssh user@machineB ls funciona bien. Así que no se trata de autenticación o alguna otra cosa.

Gracias

Ian McGrath
fuente
La respuesta es usar un script y luego emitir ssh user @ machineB 'bash -s' & lt; Esperanza de guión que ayuda a alguien.
Ian McGrath

Respuestas:

1

El problema es que su shell local está interpretando parte del comando. Debe citar todo el comando para que el shell remoto lo ejecute.

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