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.server
、your_username
和 your_password
为你的远程服务器信息。另外,将 /path/to/your/script.sh
替换为你实际的 shell 脚本路径。
这个示例展示了如何连接到远程服务器并执行脚本,同时捕获并打印脚本的标准输出和标准错误输出。希望这能帮助你实现 Node.js 调用远程 Linux 服务器 shell 脚本并获取结果的需求。