在远程服务器上执行本地脚本/命令

在远程服务器上执行本地脚本/命令

我有一个命令,想要从机器 A 在机器 B 上运行。如果我在本地机器 B 上运行该命令,它可以正常工作。

命令如下:

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

从机器 A,我发出此命令

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

但我得到了错误syntax error near unexpected token do

哪里出了问题?我认为这与双引号、单引号、分号有关,因为执行命令 ssh user@machineB ls可以正常工作。因此不是身份验证或其他问题。

谢谢

答案1

问题在于您的本地 shell 正在解释部分命令。您需要引用整个命令,以便远程 shell 执行它。

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

相关内容