Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 使用Plink执行(sudo)子命令_Powershell_Ssh_Command Line_Putty_Plink - Fatal编程技术网

Powershell 使用Plink执行(sudo)子命令

Powershell 使用Plink执行(sudo)子命令,powershell,ssh,command-line,putty,plink,Powershell,Ssh,Command Line,Putty,Plink,我正在尝试从Windows PowerShell命令Linux机器。这些命令取决于之前命令的失败/通过。因此,我必须把所有的命令放在一起。我尝试了多种方法将命令放在一起,但最后我只收到第一个命令的输出 PS C:\Users\sams> plink -ssh -l username -pw root username@10.223.26.34 -t "sudo -i && cd /root/docker/storm-supervisor/ &&

我正在尝试从Windows PowerShell命令Linux机器。这些命令取决于之前命令的失败/通过。因此,我必须把所有的命令放在一起。我尝试了多种方法将命令放在一起,但最后我只收到第一个命令的输出

PS C:\Users\sams> plink -ssh -l username -pw root username@10.223.26.34 -t
      "sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh"
实际结果:仅接收第一个命令的输出

PS C:\Users\sams> plink -ssh -l username -pw root username@10.223.26.34 -t
      "sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh"
预期结果:接收最终命令的输出

PS C:\Users\sams> plink -ssh -l username -pw root username@10.223.26.34 -t
      "sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh"
在Linux shell中尝试您的命令。这也行不通。它将执行提升的shell并等待您键入命令。只有在您离开
sudo
shell之后,它才会运行其他命令(使用原始帐户)

cd
/stop all.sh
sudo
的子命令。所以你必须这样对待他们

  • 最好的方法是在
    sudo
    commandline上提供命令:

      sudo "cd /root/docker/storm-supervisor/ && ./stop-all.sh"
    
    但这可能需要修改
    sudoers
    文件。虽然这是正确的方法

  • 或者您需要将命令输入到
    sudo
    input:

      echo "cd /root/docker/storm-supervisor/ && ./stop-all.sh && exit" | sudo
    
  • 或将所有内容馈送至Plink输入:

    (
    echo cd/根/码头工/风暴主管/
    echo./stop-all.sh
    )| plink-ssh-l用户名-pw根username@10.223.26.34-t sudo-i
    
  • 甚至:

    (
    苏多伊回声酒店
    echo cd/根/码头工/风暴主管/
    echo./stop-all.sh
    )| plink-ssh-l用户名-pw根username@10.223.26.34-t
    

谢谢,这很有帮助。