繁体   English   中英

使用简单的ssh使用同一shell执行多个命令

[英]Execute Multiple commands using same shell with simple ssh

我必须在节点js的同一ssh shell中执行多个命令。 我为此使用simple-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测试),因此将不接收语句序列。 尝试与-c结合使用双qoutes封装

maarten@Mint19:~$ cat su_test.sh 
sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM