Есть mashine1 на которой отрабатывает некая программа и результаты выводит на stdout. Эти данные надо передать на mashine2 и продолжить обработку. Т.е хотелось бы сделать так
nekaya_proga|ssh user2@mashine2 prodoljaem
но так не работает.
Можно сделать так
nekaya_proga >/tmp/tmp.tmp;scp /tmp/tmp.tmp user2@mashine2 prodoljaem; rm -f /tmp/tmp.tmp
Но несколько машин могут ОДНОВРЕМЕННО попытаться скопировать файл на mashine2! Что то потеряется... Очень не нравиться что последовательно открываются 2 соединения.
Но ведь как-то это делается! через ssh можно передавать команду (ssh user2@mashine2 prodoljaem), можно форвардить X-протокол...
Вопрос КАК?!
По моему, вам нужно посмотреть в сторону stunnel или openvpn. ssh, как мне кажется, тут мало подходит. Еще как вариант - пересылка файла при помощи scp.Как вам такая схема:
host1:Ваша_программа | host1:программа_передатчик ---> host2:программа_приемник | host2:Второй_кусок_вашей_программыПередатчик просто пересылает данные, полученные через stdin на приемник на другом хосте, который пуннает их на stdout. Канал между ними проходит через туннель, созданный средствами stunnel или openvpn.
Фактически программа_приемник и программа_передатчик реализуют pipe через сеть.
> ssh, как >мне кажется, тут мало подходит.подходит, подходит :))
прога_на_1_хосте | ssh юзер_2_хоста@имя_2_хоста "прога_на_2_хосте необязательные параметры"
у меня такая схема работает на ура
Чудо!!!
Подходит!
С кавычками подходит!
Я чувствовал!
Спасибо!!!