Использование C # для вызова Perl-скрипта на Unix-сервере - PullRequest
4 голосов
/ 03 сентября 2010

Мне нужно выполнить скрипт Perl (в основном, отправку работы), сидящий на коробке Unix Это должно происходить из приложения C #, сидящего на коробке Windows.

Возможно ли это полностью? Если да, то с чего мне начать? Любой материал для чтения будет полезен!

Ответы [ 3 ]

2 голосов
/ 03 сентября 2010

Вы можете попробовать эту отличную библиотеку SharpSSH для подключения к Unix Box. При подключении вы можете выполнять там произвольные команды.

0 голосов
/ 04 сентября 2010

Это скорее архитектурный вопрос ... По умолчанию у нас нет набора протоколов на стороне окна разговора для общения с Unix.

Это решается разными способами: Microsoft решила использовать openpegasus.org для мониторинга систем Unix в качестве средства, чтобы иметь стандартизированный интерфейс WS-Man на этих устройствах, который действует аналогично тому, что WMI делает в Windows. У меня есть пара постов, где я экспериментировал с этим http://www.muscetta.com/tag/wsman/.

Другой подход, как уже предлагал Стив, заключается в использовании SSH-библиотек PuTTy - они выпускаются по лицензии с открытым исходным кодом, которая позволяет вам встраивать их код в ваш - для вызова команд непосредственно на удаленном хосте.

Преимущество демона WSMan / CIM заключается в том, что вы общаетесь через веб-сервис и получаете сериализованные объекты, которые вы можете использовать (при условии, что вы создали правильные оболочки), но по умолчанию он не установлен на Unix-системах; Преимущество SSH заключается в том, что он устанавливается по умолчанию на все современные диалекты Unix, и с его помощью вы можете делать все, что бы вы ни делали в командной строке unix (фактически, это то, что вы делаете), но вы должны анализировать полученный текст. обратно в оболочку. Существуют также другие реализации SSH для Windows, но я считаю, что только PuTTY является бесплатным и может быть использован повторно. Другие варианты могут входить в уже созданные библиотеки, но вам придется покупать их отдельно.

0 голосов
/ 03 сентября 2010

Вы можете посмотреть на ssh, чтобы выполнить это. ssh установит соединение с удаленным компьютером и выполнит произвольные команды. Если вы настроили пары секретного / открытого ключей между двумя компьютерами, вы можете сделать это без интерактивного приглашения.

Там также могут быть библиотеки ssh для .net, которые, вероятно, будут чище, чем вызов внешней программы.

Наиболее известная реализация ssh для Windows - это, вероятно, putty, которую вы можете найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...