2009-04-21 12 views
6

Mam skrypt AIX, który chciałbym uruchomić z aplikacji .NET. Nie jestem przeciwny tworzeniu pliku wsadowego Windows, jeśli to daje mi lepsze opcje.Jak wykonać skrypt powłoki uniksowej z systemu Windows

Większość tego, co widziałem w Google, dotyczy używania narzędzia takiego jak rsh lub Plink, lub używania ssh lub telnetu. Nie mam dostępu do rsh ani Plink (chociaż mam PuTTY i prawdopodobnie mogę dostać Plink). Mogę ssh do skrzynki AIX, ale telnet jest wyłączony.

Potrzebuję sposobu podania poświadczeń użytkownika.

Czy ktoś może polecić najlepszy sposób wywołania skryptu uniksowego z aplikacji systemu Windows?

Odpowiedz

5

Zainstaluj cygwin. Dołącz funkcję ssh. Skonfiguruj klucze ssh - klucz prywatny w systemie Windows, klucz publiczny w skrzynce AIX. Następnie możesz uruchomić "ssh user @ aixbox script-on-aix-box.sh".

Najlepiej mieć skrypt w systemie AIX, chociaż można użyć skrótu SCP, aby najpierw skopiować plik do systemu AIX. Przekazywanie długiej linii poleceń przez ssh jest podatne na błędy - nie ze względu na to, że jest to ssh, ale dlatego, że uzyskanie wyjść ewakuacyjnych prawidłowo skonfigurowanych do przejścia z .NET przez ssh do ksh lub cokolwiek działającego w systemie AIX jest po prostu bolesne. Najlepiej, aby wszystko było tak proste, jak to tylko możliwe, najlepiej pojedyncze polecenie, które może być skryptem, który wykonuje wiele rzeczy.

Aby odpowiedzieć na Twoje komentarze, które trwają zbyt długo na kolejny komentarz:

(1) Dlaczego lepiej jest użyć narzędzia ssh Cygwin, zamiast narzędzia ssh systemu Windows?

a) Wiem o tym lepiej, więc nie wiedziałbym, aby zasugerować jakieś narzędzie ssh dla systemu Windows (nie wiedziałem nawet, że system Windows jest dostarczany z programem narzędziowym ssh), oraz b) narzędzie CSS cygwin ma większe szanse na bycie standardowy ssh z całą poufałością, którą uwielbiają nasi uniksowi. :-)

(2) Jakie są klucze? Czy to pozwala na uwierzytelnianie między platformami, czy może jest to tylko sposób asymetrycznego szyfrowania hasła?

Klucze umożliwiają dostęp bez hasła. Jeśli ustawisz swój klucz prywatny jako hasło bez haseł (zazwyczaj nie jest to zalecane, ale jeśli możesz zabezpieczyć swoją maszynę, działa to dobrze dla automatycznych narzędzi), twoje narzędzie będzie mogło po prostu przesłać ssh bez zapytań o hasło - to znacznie ułatwia .

+2

Dzięki za odpowiedź. Dwa powiązane pytania: (1) Dlaczego lepiej używać programu narzędziowego ssh cygwin zamiast narzędzia Windows ssh? (2) Do czego służą klucze? Czy to pozwala na uwierzytelnianie między platformami, czy może jest to tylko sposób asymetrycznego szyfrowania hasła? –

+0

Właściwie nie sądzę, że jest wbudowany w Windows (złe założenie z mojej strony). Myślę, że to narzędzie innej firmy, które mamy zainstalowane. Jeśli napotkam problemy z ssh, spróbuję cygwin. Dzięki jeszcze raz. –

3

ssh [email protected] „kot somefile.log”

(gdzie kot somefile.log otrzymuje z poleceniem, które chcesz uruchomić)

myślę najprostszy sposób na to by być wywołaniem programu ssh (bez względu na to, czy to ssh, puk, czy coś innego) z pliku wsadowego wywoływanego z aplikacji .net.

1

Po drugie proponuję cygwin, ale jedną z innych opcji jest wersja Services for UNIX Microsoftu.

1

Co mógłbym zrobić, to skonfigurować interfejs usługi (https) w skrzynce AIX, którą może uruchomić aplikacja .Net. To jest naprawdę kwestia tego, jak chcesz ujawnić swój skrypt w pudełku AIX. IMHO Java + Tomcat będzie dość łatwy do zainstalowania w systemie AIX, tylko upewnij się, że ograniczasz ekspozycję i/lub potrzebujesz biletu uwierzytelniającego dla usługi AIX. To nie tyle pytanie .Net, co decyzja architektoniczna.

--edit--

Jak inni sugerują, można użyć Cygwin jak również. Istnieją składniki SSH dla .Net, z których możesz również korzystać, co może być bardziej przejrzyste. (Commercial i FOSS)

+0

Podoba mi się również sugestia usługi AIX. – Tanktalus

Powiązane problemy