我有一個運行在Unix服務器上的腳本(在Solaris上是精確的)。該腳本使用ftp實用程序來調整大型機服務器中的文件,然後將它們傳送到Unix服務器。無法使用C#和SSH.NET在Windows服務器上運行Unix服務器中的用戶腳本
最近,我正在嘗試使用Windows窗體和C#開發Windows桌面應用程序。我正嘗試使用codeplex提供的SSH.NET庫。問題是,每當我從應用程序運行正常的Unix命令時,它就會運行,但是當我嘗試運行腳本時,它不起作用。我檢查了連接並且應用程序已正確連接到服務器。我都用了下面的方法,但沒有運氣: -
using (ssh client = new SshClient("Ip", "username", "password"))
{
client.Connect();
SshCommand cmd = client.RunCommand("script");
client.Disconnect();
}
using (ssh client = new SshClient("hostnameOrIp", "username", "password"))
{
client.Connect();
SshCommand cmd = client.createCommand("script");
cmd.execute();
client.Disconnect();
}
如果有人點我朝着正確的方向這將是一個巨大的幫助。
編輯: - 使用完整路徑運行腳本已經工作,因爲被調用的非交互式shell在加載時不會讀取/ etc/profile/env變量。我會嘗試建議的其他選項,並在出現問題時編輯帖子。
*它不起作用*:這是什麼意思?它不運行?或者運行失敗?當你試圖運行它時,輸出是什麼? –
沒有輸出。輸出應該是有問題的文件,在經過一些調整後從大型機服務器傳輸到nix服務器。如果腳本失敗,則文件不會被傳輸,並且沒有其他輸出。不過,我可以檢查stderr並獲得一些洞察。我有機會的時候會做這件事。 – KChow