2009-04-21 6 views
6

У меня есть сценарий AIX, который я хотел бы запустить из приложения .NET. Я не против того, чтобы начинать пакетный файл Windows, если это дает мне лучшие варианты.Как выполнить сценарий оболочки Unix из Windows

Большинство из того, что я видел в Google, связано с использованием такого инструмента, как rsh или Plink, или с помощью ssh или telnet. У меня нет доступа к rsh или Plink (хотя у меня есть PuTTY и, вероятно, можно получить Plink). Я могу ssh в AIX, но telnet отключен.

Мне нужен способ передачи учетных данных пользователя.

Может ли кто-нибудь рекомендовать лучший способ вызова сценария Unix из приложения Windows?

ответ

5

Установите cygwin. Включите функцию ssh. Настройте свои ssh-ключи - закрытый ключ в Windows, открытый ключ в поле AIX. Затем вы можете запустить «ssh user @ aixbox script-on-aix-box.sh».

Лучше всего иметь сценарий в AIX, хотя вы можете использовать scp для копирования файла в AIX. Передача длинной командной строки через ssh связана с ошибкой - не из-за того, что она является ssh, а потому, что получение escapes должным образом настроено для перехода с .NET на ssh на ksh или на все, что работает на AIX, просто больно. Лучше всего держать вещи как можно проще, желательно только одну команду, которая может быть скриптом, который выполняет несколько действий.

Чтобы ответить на ваши комментарии, которые будут принимать слишком много времени для другого комментария:

(1) Почему лучше использовать утилиту SSH Cygwin вместо утилиты SSH с Windows?

a) Я знаю это лучше, поэтому я не знаю, чтобы предлагать любую утилиту ssh для Windows (я даже не знал, что Windows поставляется с утилитой ssh), и b) утилита ssh cygwin имеет больше шансов быть стандартный ssh ​​со всем знакомством нас, любителей unix. :-)

(2) Каковы ключи для? Это позволяет использовать межплатформенную аутентификацию или это просто способ асимметричного шифрования пароля?

Ключи допускают доступ к беспроблемному доступу. Если вы настроите свой закрытый ключ как пароль без пароля (обычно это не рекомендуется, но если вы можете сохранить свой компьютер в безопасности, он хорошо работает для автоматизированных инструментов), ваш инструмент сможет просто ssh без подсказок пароля - это значительно упрощает ,

+2

Спасибо за ответ. Два связанных вопроса: (1) Почему лучше использовать утилиту cygwin ssh вместо утилиты Windows ssh? (2) Для чего нужны клавиши? Это позволяет использовать межплатформенную аутентификацию или это просто способ асимметричного шифрования пароля? –

+0

На самом деле, я не думаю, что он встроен в Windows (плохое предположение с моей стороны). Я думаю, что это утилита сторонних разработчиков, которую мы установили. Если у меня возникнут проблемы с ssh, я попробую cygwin. Еще раз спасибо. –

3

SSH [email protected] «кот somefile.log»

(где кошка somefile.l заменяется командой, которую вы хотите запустить)

Я думаю, что самый простой способ сделать это было бы вызывать вашу ssh-программу (будь то ssh, plink или что-то еще) из пакетного файла, который вызывается из вашего .net-приложения.

1

Я второй предлагаю cygwin, но еще один вариант, который у вас есть, - это Services for UNIX.

1

Что бы я сделал, было бы установить интерфейс службы (https) в поле AIX, которое может запускать приложение .NET. Это действительно вопрос того, как вы хотите разоблачить свой скрипт в окне AIX. IMHO Java + Tomcat будет достаточно легким для установки в окне AIX, просто убедитесь, что вы ограничиваете свою экспозицию и/или требуете аутентификационный билет для службы AIX. Это не столько вопрос .Net, сколько архитектурное решение.

--edit--

Как и другие предложили, вы можете использовать Cygwin, а также. Есть компоненты SSH для .Net, которые вы также можете использовать, что может быть более прозрачным для вас. (Commercial и FOSS)

+0

Мне тоже нравится предложение AIX. – Tanktalus

Смежные вопросы