我必须在node js的同一个ssh shell中执行多个命令。我为此使用简单的 ssh。但是由于sudo案例,执行停止了。
下面的代码有四个我需要在同一个 ssh 中执行的命令。命令将用户切换到 root 后,执行将停止。我无法在单独的 ssh 中执行第三个命令,因为命令 cd 和切换用户不会在新的 ssh 中执行。
var cmd = 'cd /home/sample/test/core/build/bin/' + "n" + 'sudo su root'
+ "n" + 'su test' + "n" + './app'
ssh.exec(cmd, {
pty: true,
out: function (stdout) {
console.log(stdout);
},
err: function (stdout) {
console.log(stdout);
}
}).start();
我想使用相同的 ssh 执行四个命令。有没有办法实现?我也很乐意从 simple-ssh 移动到任何其他可以做到这一点的 npm。
不确定您使用的是哪个 npm 模块。但是你可以通过使用ssh2shell来实现这一点。
这将命令数组作为参数
commands:["cd /home/sample/test/core/build/bin/", "sudo su root", "su test", "./app"]
快乐的脚本编写!
sudo su 根将创建一个新的 shell(和 su 测试),因此它不会接收语句序列。尝试将双 qoutes 与 -c 结合使用进行封装
maarten@Mint19:~$ cat su_test.sh
sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"