【问题标题】:shell commands dont work on nodejs ssh2shell命令在nodejs ssh2上不起作用
【发布时间】:2017-09-28 05:43:20
【问题描述】:

我正在使用以下库来做:http://maboiteaspam.github.io/ssh2-utils/

  1. 登录到 altus 实例
  2. 转到一个目录。

这是我的代码:

function postRun(url){
        ssh.runMultiple(server, "sudo docker exec -it abcas /bin/bash", function(err,stdout,stderr,server,conn){
            if(err) console.log(err);
            stdout.on('data', function(data){
                executeCommands();

            });
            stderr.on('data', function(data){
                console.log(''+data);
            });
            stdout.on('close',function(data){
                conn.end();
            });
        });
}

function executeCommands(){
        ssh.runMultiple(server, ['cd /dependencies/scripts'], function(err,stdout,stderr,server,conn){
            if(err) console.log(err);
            stdout.on('data', function(data){
                ssh.exec(server, 'pwd', function(err,stdout,stderr){
                    if(err) console.log(err);
                });
            });
            stderr.on('data', function(data){
                console.log(''+data);
            });
            stdout.on('close',function(data){
                conn.end();
            });
        });
}

我收到以下错误:

bash: line 0: cd: /dependencies/scripts: 没有这样的文件或目录

我不确定我做错了什么。我在某处读到需要更改 shell,但看起来我已经在 bash 中了。

我遗漏了什么,请赐教。

【问题讨论】:

  • 您正试图进入一个不存在的目录。不要为此责怪 SSH 或 Node... 错误消息告诉您 SSH 命令执行本身确实有效,但结果不成功(即非零返回码)。验证路径 /dependencies/scripts 是否存在。
  • 错误来自 bash,而不是来自 ssh。看看你是否可以从命令行 cd /dependencies/scripts。
  • 问题是.. 目录存在,我可以 cd 进入目录。 @marekful 这让我很烦恼 :-( 我花了几个小时试图弄清楚发生了什么,然后我放弃了 :-(
  • 我明白你的意思了。所以问题是,该目录确实存在。但是,当我从另一个 linux 机器上执行 postRun() 时 .. 它应该转到 "Inside" 一个 docker 实例,然后执行 "cd" 但它从外部机器上执行 cd。 (不在 docker 内部).. 不太确定我应该如何解决这个问题.. 我应该使用 ssh.runMultiple?
  • 一个常见的初学者错误是不理解斜线的意义。目录/dependencies 真的存在于根目录中吗?或者你希望在你的主目录中找到一个目录dependencies(注意没有前导斜杠)?

标签: node.js bash shell libssh2


【解决方案1】:

“cd /” - 表示它转到根目录,因此您必须指定从根目录开始从父目录开始的目录的完整路径。

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 2014-01-21
    • 2012-11-23
    • 2015-03-25
    • 2014-12-08
    • 2015-07-16
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多