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

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

我想要做的是在一台机器上运行 shell 脚本“ABCDE”,但使用另一台机器来支持它。ABCDE 是一个集所有功能于一身的翻录器/编码器/标记器脚本,用于将 CD 转换为数字文件。我有一台机器,它的 CD 驱动器很快,但处理器很慢,另一台机器的处理器很快,但 CD 驱动器很慢。我在两台机器之间设置了 SSH 隧道,还设置了 SSH-fs,这样两台机器就可以共享翻录的文件。

我的主目录中有一个配置文件,允许我设置编码器的路径。以下是重要的几行(还有其他与 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

当我尝试向脚本表明编码器的路径在其他地方时,我遇到了问题。

例如:

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

它运行 oggenc 命令其余的 shell 脚本。当然,由于 oggencoder 此时没有输入,它会给出错误消息,并且程序继续使用 /etc/abcde.conf 中的默认设置。

我尝试了“、'、、\”等任意数量的组合, \' , \,但要么根本不起作用,要么过早执行了 oggencoder。

请让我知道我做错了什么,或者是否可以做到这一点。

答案1

请耐心等待,我已了解您的设置。

如果机器 A 是快速 CD 设备,机器 B 有快速处理器。
您似乎正在从机器 A 运行作业(靠近驱动器)。
您已经共享了文件空间,因此撕破
从 Machine-B 可以看到文件编码并且可能标签也。

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

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

在哪里,

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

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

相关内容