2009-04-21 42 views
6

Tôi đã có một tập lệnh AIX mà tôi muốn chạy từ một ứng dụng .NET. Tôi không phản đối việc khởi động một tập tin batch của Windows nếu nó cho tôi những lựa chọn tốt hơn.Cách thực thi một tập lệnh shell Unix từ Windows

Hầu hết những gì tôi thấy trên Google liên quan đến việc sử dụng công cụ như rsh hoặc Plink hoặc sử dụng ssh hoặc telnet. Tôi không có quyền truy cập vào rsh hoặc Plink (mặc dù tôi có PuTTY và có thể có thể nhận được Plink). Tôi có thể ssh đến hộp AIX nhưng telnet bị vô hiệu hóa.

Tôi cần có cách để chuyển thông tin đăng nhập của người dùng.

Có ai có thể giới thiệu cách tốt nhất để gọi tập lệnh Unix từ ứng dụng Windows không?

Trả lời

5

Cài đặt Cygwin. Bao gồm hàm ssh. Thiết lập khóa ssh của bạn - khóa cá nhân trên cửa sổ, khóa công khai trên hộp AIX. Sau đó, bạn có thể chạy "ssh user @ aixbox script-on-aix-box.sh".

Tốt nhất để có tập lệnh trên AIX, mặc dù bạn có thể sử dụng scp để sao chép tệp vào AIX trước. Đi qua một dòng lệnh dài thông qua ssh là dễ bị lỗi - không phải do nó là ssh, nhưng vì việc thoát khỏi đúng cách được thiết lập để chuyển từ .NET qua ssh sang ksh hoặc bất cứ thứ gì đang chạy trên AIX chỉ là đau đớn. Tốt nhất để giữ mọi thứ càng đơn giản càng tốt, tốt nhất chỉ là một lệnh duy nhất mà sau đó có thể là một tập lệnh thực hiện nhiều thứ.

Để trả lời bình luận của bạn, mà sẽ mất quá lâu để lấy ý kiến ​​khác:

(1) Tại sao nó tốt hơn để sử dụng tiện ích ssh Cygwin thay vì tiện ích ssh Windows?

a) Tôi biết rõ hơn, vì vậy tôi sẽ không biết đề xuất bất kỳ tiện ích ssh windows nào (tôi thậm chí không biết Windows đi kèm với tiện ích ssh) và b) tiện ích ssh của cygwin là cơ hội tốt hơn ssh tiêu chuẩn với tất cả sự quen thuộc của chúng tôi unix freaks tình yêu. :-)

(2) Các phím là gì? Điều đó cho phép xác thực đa nền tảng hay chỉ là cách mã hóa mật khẩu không đối xứng?

Các phím cho phép truy cập không cần mật khẩu. Nếu bạn thiết lập khóa riêng của mình là mật khẩu (thường không được khuyến nghị, nhưng nếu bạn có thể giữ an toàn cho máy, nó hoạt động tốt cho các công cụ tự động), công cụ của bạn sẽ chỉ có thể ssh hơn mà không có lời nhắc mật khẩu. .

+2

Cảm ơn câu trả lời. Hai câu hỏi liên quan: (1) Tại sao nó tốt hơn để sử dụng tiện ích ssh của Cygwin thay vì tiện ích Windows ssh? (2) Chìa khóa để làm gì? Điều đó cho phép xác thực đa nền tảng hay chỉ là cách mã hóa mật khẩu không đối xứng? –

+0

Trên thực tế, tôi không nghĩ rằng nó được xây dựng trong Windows (giả định xấu về phần của tôi). Tôi nghĩ rằng đó là một tiện ích của bên thứ ba mà chúng tôi đã cài đặt. Nếu tôi gặp vấn đề với ssh, tôi sẽ thử Cygwin. Cảm ơn một lần nữa. –

3

ssh [email protected] "mèo somefile.log"

(nơi mèo somefile.log được thay thế bằng các lệnh mà bạn muốn chạy)

Tôi nghĩ rằng cách dễ nhất để làm điều đó sẽ được gọi chương trình ssh của bạn (cho dù đó là ssh, plink, hoặc cái gì khác) từ một tập tin thực thi được gọi là từ ứng dụng .net của bạn.

1

Tôi thứ hai là đề xuất Cygwin, nhưng một tùy chọn khác mà bạn có là Services for UNIX của Microsoft.

1

Tôi sẽ làm gì, sẽ thiết lập giao diện dịch vụ (https) trên hộp AIX mà ứng dụng .Net có thể chạy. Đây thực sự là vấn đề về cách bạn muốn hiển thị tập lệnh của mình trên hộp AIX. IMHO Java + Tomcat sẽ đủ dễ dàng để cài đặt trên hộp AIX, chỉ cần đảm bảo bạn giới hạn hiển thị quảng cáo và/hoặc yêu cầu vé xác thực cho dịch vụ AIX. Đây không phải là một câu hỏi .Net như một quyết định kiến ​​trúc.

--edit--

Như những người khác đã đề xuất, bạn cũng có thể sử dụng Cygwin. Có các thành phần SSH cho .Net bạn có thể sử dụng, điều này có thể minh bạch hơn cho bạn. (CommercialFOSS)

+0

Tôi cũng thích đề xuất dịch vụ AIX. – Tanktalus

Các vấn đề liên quan