如何从shell脚本内部远程运行进程?

我想要做的是在一台机器上运行shell脚本“ABCDE”,但使用另一台机器来支持它。 ABCDE是一个用于将CD转换为数字文件的一体化解密器/编码器/标记器脚本。 我有一台机器有一个快速的CD驱动器,但一个缓慢的处理器,另一台机器有一个快速的处理器,但慢的CD驱动器。 我已经在两者之间build立了SSH隧道,还有一个SSH-fs,所以这两个机器可以共享被破解的文件。

在我的主目录中有一个configuration文件,允许我设置编码器的path。 这里是重要的线路(还有其他与CD驱动器位置,输出格式化等有关):

OGGENCODERSYNTAX=oggenc # Specify encoder for Ogg Vorbis OGGENC=/usr/bin/oggenc # Path to Ogg Vorbis encoder OGGENCOPTS='-q 6' # Options for Ogg Vorbis OUTPUTTYPE="ogg" # Type of file to create 

当我试图向脚本指出编码器的path在别处时,我遇到了问题。

例如:

 OGGENC=`ssh WWW.XXX.YYY.ZZZ /usr/bin/oggenc` 

它在shell脚本的其余部分之前运行oggenc命令。 当然,由于oggencoder当时没有任何input,所以会给出一个错误信息,然后程序继续使用/etc/abcde.conf中的默认设置。

我已经尝试了任何数量的“,”,“ , \' , \ ,\“等组合,但是它根本不起作用,或者它太早执行oggencoder。

请让我知道我做错了什么,或者甚至可以完成。

忍受我,因为我了解你的设置。

如果Machine-A是快速CD设备而Machine-B是快速处理器。
您似乎正在从机器A(靠近驱动器)运行作业。
您已经共享了文件空间,以便翻录的文件
可以从机器B看到被编码 ,也可能被标记

现在您的问题是从机器A远程启动编码器操作。

 ssh user@Machine-B exec /shared/path/encodeScript /shared/path/$filename 

哪里,

  • $filename是要编码的文件
  • /shared/path是可见的跨机器

应该在远程机器B上进行单独的文件编码。