首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C#向SSH执行相关命令

从C#向SSH执行相关命令
EN

Stack Overflow用户
提问于 2020-07-27 13:50:35
回答 1查看 63关注 0票数 0

我正在尝试从C#在SSH上执行连续的命令,我有三个命令subcommand1,subcommand2和subcommand3。虽然我成功连接到目标服务器,但我无法通过C#从下面获得结果,当我在putty上运行命令时,这是有效的。我的主要目标是从oracle服务器140.X.XX.3下载一个文件到IP上的本地lynux服务器,下面表示为MYIPADDRESS。我做错了什么?

代码语言:javascript
复制
'using System;
using Renci.SshNet;
using Renci.SshNet.Common;
using System.Diagnostics;   
namespace SFTP_SHH
{
    class Program
    {
        static void Main(string[] args)
        {
            //Connection information
            string user = "username";
            string pass = "password";
            string host = "MYIPADDRESS ";
            string gainAcces = "sftp -o IdentityFile=/export/home/oracle/.ssh/rsps_rsa user@140.XX.XX.X;";
            //Set up the SSH connection    
          SshClient sshclient = new SshClient(host, user, pass);
                sshclient.Connect();
            string subcommand1 = gainAcces;
            string subcommand2 = "cd download";
            string subcommand3 = "get 2020-07-22_RESPONSYS_CRM_OUTGOING_CALLS2.csv.zip";
            SshCommand sc1 = sshclient.CreateCommand(subcommand1 && subcommand2 && subcommand3);
            sc1.Execute();                        
        }
      }
    }
'
EN

回答 1

Stack Overflow用户

发布于 2020-07-27 13:53:43

您可以使用;将命令分成三部分,

代码语言:javascript
复制
SshCommand sc1 = sshclient.CreateCommand(subcommand1 + ";" + subcommand2  + ";" + subcommand3);

您要做的是在三个字符串之间使用&& (AND)运算符...这和你想的不太一样。您可以使用&&运算符作为这三个命令的一部分,方法是将其添加为字符串...不是c#操作员(可能不是在所有linux系统上都有效),

代码语言:javascript
复制
SshCommand sc1 = sshclient.CreateCommand(subcommand1 + "&&" + subcommand2  + "&&" + subcommand3);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63109350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档