Полная версия этой страницы:
Как скрестить ужа с ежом
Столкнулся с такой вот хренью:
Есть компьютеры А и Б. А это x86/linux, Б - sun ultra/solaris
Есть программы а и б. Первая на первом компе, вторая на втором. Программы а под соляру нет, как и б под линукс, и достать/собрать невозможно.
Есть скрипт неодуплимого размера, который в себе юзает программы а и б.
Надо: запустить этот скрипт на машине А, да так, чтобы он запускал программу б на машине Б, и при этом сам не подозревал о том, что его надули, и программа пускается не на локальном компе. При этом программам а и б нужны одни и те же файлы, они обмениваются меж собой результатами через них, и в сам скрипт лезть крайне не желательно.
Что я пока умею - всего лишь подмонтировать в тачке А свою хоум-директорию (и любую другую) с тачки Б. В линуксе сам могу разобраться с конфигурированием практически всего. А вот в соляре путаюсь жутко - только nfs поднимался дня 4 с трахом (в основном на тему несовместимости клиента и сервера в разных системах). Т.е. до того я просто пускал локально программу б на сане, и копировал ее результаты куда мне надо. А вот теперь этого стало мало.
Очень надеюсь на помощь. Заранее Спасибо!
ЗЫ - программа а это манагер БД от синопсиса, программа б - это мемори компилер от них же, а скрипт делает особо мудрую операцию с применением всяких недокументированных опций и параметров, в результате чего то, что генерит мемори компилер сразу попадает в БД.
Думаю, что "получить мягкое и пушистое" не получится, а по поводу "нечто" есть такая идея.
Как я понял, монтирование по nfs обеспечивает взаимодействие программ а и б посредством файлов?
Если программы _НЕ_ общаются иным образом, а только через эти файлы, то можно попробовать создать wrapper скрипт или программу, с именем б, положить этот wrapper в ожидаемый скриптом запуска каталог.
Этот wrapper должен запускать на машине Б программу б с передачей ей всех ключей командной строки и возвращать код завершения программы б в скрипт запуска. Возможно, и скорее всего, этот wrapper должен еще обеспечивать передачу stdin/stdout/stderr между программой б и скриптом запуска.
Запуск программ удаленно на другой машине - это из разряда telnet (для простых случаев) или RPC для сложных случаев.
Лично я делал такую комбинацию с использованием telnet и перенаправлением stdin/stdout/stderr. Соответсвенно - это был простой случай. Взаимодействие моих программ было очень простым.
На счет RPC я пас. Не владею.
Цитата(amw @ Feb 8 2007, 19:48)

Лично я делал такую комбинацию с использованием telnet и перенаправлением stdin/stdout/stderr.
+ rexec и другие r* ...
+ подмонтирование по NFS некоторых файлов из А->B + некоторых из B->A (одновременно) - может создать видимость вашим процессам, что они работают "дома"...
P.S. кстати, насколько я помню, mount в Linux и SunSolaris - работают по-разному: замещением и дополнением ... но это может и измениться от версии.
Цитата(Olej @ Feb 8 2007, 19:03)

+ rexec и другие r*
А вот этот rexec (или может rsh - в чем две большие разницы) - в соляре оно вообще поддерживается по дефолту? А то я как-то эту соляру ставил отвечая на все вопросы "по дефолту"... Вроде как rsh примерно то что надо... Попробую написать "скрипт-враппер", как amw посоветовал, и из него эти r*, если, конечно, соляра эти сервисы имеет...
К счастью общение только через файлы.
ЗЫ а эти r* они где исполнять будут? В home того юзера, кем в этих r* представился?
ЗЗЫ этот программа, б которая, она тоже снаружи скрипт, csh'ный. Это надо делать "rsh csh имя", или rsh сам будет юзать шелл нужный? Я что-то запутался...
Всем спасибо, вопрос закрыт. Был некий трах с файрволами, после чего все пошло через rsh как по маслу.
Harbour
Feb 9 2007, 04:11
rsh не есть good в плане security - ssh standart de facto, хотя для локалки, думаю, до спины
Цитата(Harbour @ Feb 9 2007, 05:11)

rsh не есть good в плане security - ssh standart de facto, хотя для локалки, думаю, до спины
ага ... и, пожалуй даже - ниже
Цитата(Harbour @ Feb 9 2007, 04:11)

rsh не есть good в плане security - ssh standart de facto, хотя для локалки, думаю, до спины
Не проблема - я открыл порты в файрволе только для определеного хоста из локалки, так что даже другой хост не зайдет. Это раз. Ну и hosts.equiv тоже самое, но с другого боку - это два. Ну а в sun пусть хоть черт с рогами лезет - он ради одной этой программы куплен, и на нем более ничего нет.
Harbour
Feb 10 2007, 09:11
В том-то и дело что зайдет
Цитата(Harbour @ Feb 10 2007, 09:11)

В том-то и дело что зайдет

Это каким образом? iptables не надежно работает?
Harbour
Feb 11 2007, 10:58
Есть кипа аттак типа MIM (man in the middle) которые спокойно обходят firewall'ы. Но rsh я бы не юзал не по этой причине, а по тому факту что весь shell траффик открыт для просмотра всем желающим, что в большинстве случаев не есть good (исходники там, private инфа, пароли и т.д.).
Цитата(Harbour @ Feb 11 2007, 10:58)

Но rsh я бы не юзал не по этой причине, а по тому факту что весь shell траффик открыт для просмотра всем желающим, что в большинстве случаев не есть good (исходники там, private инфа, пароли и т.д.).
Дык там трафика - одна команда и вывод на консоль от нее. Пароль вроде как не передается, по крайней мере по доке если хост и юзер вписаны в hosts.equiv то оно создает сессию без логина с паролем. Меня это вроде устраивает. А сам-то я хожу на свои компы ssh-ем, докучи как-то очень не хочется на этом гребаном сане что-то лишнее делать - заработало, и ладно. Я же на нем ничего и близко делать не собираюсь, кроме того, что без него нельзя сделать физически.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.