簡體   English   中英

如何從Windows執行Unix shell腳本

[英]How to execute a Unix shell script from Windows

我有一個我想從.NET應用程序運行的AIX腳本。 我不反對開啟Windows批處理文件,如果這給了我更好的選擇。

我在Google上看到的大部分內容都與使用rsh或Plink等工具或使用ssh或telnet有關。 我沒有訪問rsh或Plink(雖然我有PuTTY,可能會得到Plink)。 我可以ssh到AIX框,但telnet被禁用。

我需要一種傳遞用戶憑據的方法。

任何人都可以推薦從Windows應用程序調用Unix腳本的最佳方法嗎?

安裝cygwin。 包括ssh函數。 設置你的ssh密鑰 - windows上的私鑰,AIX盒子上的公鑰。 然后你可以運行“ssh user @ aixbox script-on-aix-box.sh”。

最好在AIX上安裝腳本,盡管您可以先使用scp將文件復制到AIX。 通過ssh傳遞一個長命令行是容易出錯的 - 不是因為它是ssh,而是因為正確設置從.NET通過ssh傳遞到ksh或者在AIX上運行的任何東西的轉義只是很痛苦。 最好保持事情盡可能簡單,最好只是一個命令,然后可以是一個執行多項操作的腳本。

要回答您的意見,這可能需要很長時間才能發表另一條意見:

(1)為什么使用cygwin的ssh實用程序而不是Windows ssh實用程序更好?

a)我知道它更好,所以我不知道建議任何Windows ssh實用程序(我甚至不知道Windows帶有ssh實用程序),和b)cygwin的ssh實用程序更有可能成為標准ssh所有熟悉我們unix怪胎的愛。 :-)

(2)關鍵是什么? 這是否允許跨平台身份驗證,還是只是一種非對稱加密密碼的方式?

密鑰允許無密碼訪問。 如果您將私鑰設置為無密碼(通常不推薦,但如果您可以保證機器安全,它適用於自動化工具),您的工具將能夠在沒有密碼提示的情況下進行ssh - 這使事情變得更容易。

ssh eximadmin@172.16.12.10“cat somefile.log”

(其中cat somefile.log將替換為您要運行的命令)

我認為最簡單的方法是從您的.net應用程序調用的批處理文件中調用您的ssh程序(無論是ssh,plink還是其他)。

我是第二個cygwin建議,但你有另一個選擇是Microsoft的UNIX服務

我要做的是在.Net應用程序可以運行的AIX機器上設置服務(https)接口。 這實際上是您希望如何在AIX機器上公開腳本的問題。 恕我直言Java + Tomcat很容易在AIX框上進行設置,只需確保限制暴露,和/或需要AIX服務的身份驗證票。 這不是一個.Net問題,而是一個架構決策。

- 編輯 -

正如其他人所建議的那樣,你也可以使用Cygwin。 您也可以使用.Net的SSH組件,這對您來說可能更透明。 商業FOSS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM