gpt4 book ai didi

node.js - Node ssh2 shell 无法在远程计算机上运行 apt-get install

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:27 25 4
gpt4 key购买 nike

我正在用node.js 编写一个程序,将我的代码从git 部署到服务器(Digital Ocean)。我通过 ssh2 模块连接到服务器并通过 shell 运行命令,如下所示:

var Client = require('ssh2').Client;

var conn = new Client();
conn.on('ready', function() {
console.log('Client :: ready');
conn.shell(function(err, stream) {

if (err) throw err;

stream.on('close', function() {

console.log('Stream :: close');
conn.end();

}).on('data', function(data) {

console.log('STDOUT: ' + data);

}).stderr.on('data', function(data) {

console.log('STDERR: ' + data);

});

stream.end('sudo apt-get update -y\nsudo apt-get install -y build-essential\nexit\n');
});
}).connect({
host: 'x.x.x.x',
port: 22,
username: 'yyy',
privateKey: 'zzz'
});

命令“apt-get update”工作正常,但命令“apt-get install build-essential”(我尝试安装其他程序,如 vim 和curl)似乎卡住了输出最后一行的流。我认为这可能是由于 apt-get 的提示“Y/n”引起的,但我找不到解决方法。有人知道怎么处理吗?

最佳答案

尝试用 && 更改 \n:

stream.end('sudo apt-get update -y && sudo apt-get install -y build-essential && exit');

关于node.js - Node ssh2 shell 无法在远程计算机上运行 apt-get install,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com