shell命令通过ssh2 nodejs

时间:2014-05-08 08:58:39

标签: node.js shell ssh

我正在尝试用ssh2做基本的东西(https://www.npmjs.org/package/ssh2),但是我没有得到任何结果,api不是那么可以理解(对我来说),我正在尝试做基本的shell命令像ls,pwd ..但是没有结果。我试着通过shell获得ls -lah,

c.on('ready', function() {

    c.shell('ls','lah', function(err,stream) {
    if (err) throw err;

         stream.on('ls', function(data, extended) {
              console.log(data);
              console.log(extended);
         });

    });

});

有人可以指导我做错了什么或它应该如何工作? 顺便说一下没有连接问题。

感谢

2 个答案:

答案 0 :(得分:3)

这是你想要的:

c.on('ready', function() {
  c.exec('ls -lah', function(err, stream) {
    if (err)
      throw err; // Do something more sensible than this

    stream.on('data', function(data) {
      console.log('STDOUT: ' + data);
    });
    stream.stderr.on('data', function(data) {
      console.log('STDERR: ' + data);
    });
    stream.on('close', function(code, signal) {
      console.log('Process closed with code ' + code);
    });
  });
});

答案 1 :(得分:1)

在npm中使用新版本的ssh2(0.3.6),现在稍微改变了一下:

c.on('ready', function() {
  c.exec('ls -lah', function(err, stream) {
    if (err) throw err;
    stream.on('data', function(data) {
      console.log('STDOUT: ' + data);      
    }).stderr.on('data', function(data){
      console.log('STDERR: ' + data);      
    }).on('exit', function(code, signal) {
      console.log('Exited with code ' + code + ' and signal: ' + signal);
    });
  });
});