Назад | Перейти на главную страницу

Как запустить процесс удаленно из сценария оболочки?

Я пытаюсь запустить сценарий оболочки ABCDE на одном компьютере, но использовать другой компьютер для его поддержки. ABCDE - это универсальный скрипт-риппер / кодировщик / теггер для преобразования компакт-дисков в цифровые файлы. У меня есть одна машина с быстрым приводом компакт-дисков, но с медленным процессором, и другая машина с быстрым процессором, но медленным приводом компакт-дисков. Я установил 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 перед остальная часть сценария оболочки. И, конечно же, поскольку в этот момент oggencoder не имеет ввода, он выдает сообщение об ошибке, и программа переходит к использованию настройки по умолчанию из /etc/abcde.conf.

Я пробовал любое количество комбинаций ",", , \' , \ , \ "и т. д., но либо он вообще не работает, либо запускает oggencoder слишком рано.

Пожалуйста, дайте мне знать, что я делаю не так и можно ли вообще это сделать.

Потерпите меня, поскольку я понимаю вашу установку.

Если Машина-A является устройством быстрой записи компакт-дисков, а Машина-B имеет быстрый процессор.
Кажется, вы выполняете задание с машины A (чтобы быть ближе к приводу).
Вы разделили файловое пространство таким образом, что разорванный файлы
видно из Машины-B, чтобы быть закодированный и вероятно отмечен слишком.

Теперь ваша проблема состоит в том, чтобы запустить кодировщик удаленно с Machine-A.

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

Куда,

  • $filename файл для кодирования и
  • /shared/path виден через машины

должен выполнять кодирование отдельных файлов на удаленной машине-B.