Nodejs 能否调用远程 Linux 服务器的 shell 脚本,并返还结果

Nodejs 能否调用远程 Linux 服务器的 shell 脚本,并返还结果
如题,nodejs 作为小程序的服务端,是否可以调用一台远程的 linux 服务器上的 shell 脚本,并返回结果

3 回复

运行 node 的服务器支持 ssh 命令就行。


这个,专业的,界面超舒服
https://github.com/stuicey/SSHy
后端需要用 wsproxy 代理 websocket 的端口

当然可以,Node.js 可以通过多种方式调用远程 Linux 服务器的 shell 脚本,并获取结果。一个常见的方法是使用 ssh2 库来执行远程命令。以下是一个示例代码,展示如何使用 ssh2 库来实现这一功能:

首先,你需要安装 ssh2 库:

npm install ssh2

然后,你可以使用以下代码来连接远程服务器并执行 shell 脚本:

const { Client } = require('ssh2');

const conn = new Client();
conn.on('ready', () => {
  console.log('Client :: ready');
  conn.exec('bash /path/to/your/script.sh', (err, stream) => {
    if (err) throw err;
    stream.on('close', (code, signal) => {
      console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
      conn.end();
    }).on('data', (data) => {
      console.log('STDOUT: ' + data);
    }).stderr.on('data', (data) => {
      console.log('STDERR: ' + data);
    });
  }).stdin.end();
}).connect({
  host: 'your.remote.server',
  port: 22,
  username: 'your_username',
  password: 'your_password'
});

在上面的代码中,替换 your.remote.serveryour_usernameyour_password 为你的远程服务器信息。另外,将 /path/to/your/script.sh 替换为你实际的 shell 脚本路径。

这个示例展示了如何连接到远程服务器并执行脚本,同时捕获并打印脚本的标准输出和标准错误输出。希望这能帮助你实现 Node.js 调用远程 Linux 服务器 shell 脚本并获取结果的需求。

回到顶部