从 nodejs 我一直试图在远程服务器上执行 linux 命令并在流中获取输出以进行进一步处理。为了连接到远程 linux 服务器,我拥有所有必要的详细信息,例如 serverip、用户名和密码。我在互联网上搜索了很多,发现这可以通过 ssh 来实现。
Nodejs ui页面可以将shell cmd运行到远程机器并运行脚本吗
但是这个答案有点令人困惑,我不知道如何在连接中使用密码。
指向任何工作示例的指针都会有很大帮助。
我自己解决了这个问题。有一个 npm 包 (ssh-exec) 可用于 ssh 命令执行。下面是我使用的代码。
var exec = require('ssh-exec')
var v_host = 'XX.XX.XX.XXX'
exec('ls -lh', {
user: 'root',
host: 'XX.XX.XX.XXX',
password: 'password'
}).pipe(process.stdout , function (err, data) {
if ( err ) { console.log(v_host); console.log(err); }
console.log(data)
})
Run Code Online (Sandbox Code Playgroud)
我还使用了另一个包“simple-ssh”来解决这个问题。它使用起来非常简单,并且可以很好地控制可以像流一样使用的输出。
var SSH = require('simple-ssh');
var ssh = new SSH({
host: 'XX.XX.XX.XXX',
user: 'username',
pass: 'password'
});
ssh.exec('ls -lh', {
out: function(stdout) {
console.log(stdout);
}
}).start();
Run Code Online (Sandbox Code Playgroud)
并根据需要结束执行
ssh.end();
Run Code Online (Sandbox Code Playgroud)
其中 ssh 只不过是我们之前声明的新 SSH。
| 归档时间: |
|
| 查看次数: |
14309 次 |
| 最近记录: |