我有一个运行在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