gpt4 book ai didi

powershell - 使用 Plink 执行 (sudo) 子命令

转载 作者:行者123 更新时间:2023-12-02 14:00:52 28 4
gpt4 key购买 nike

我正在尝试从 Window 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"

实际结果:只收到第一条命令的输出。

预期结果:接收最终命令的输出。

最佳答案

sudo -i && cd /root/docker/storm-supervisor/ && ./stop-all.sh

在 Linux shell 中尝试您的命令。也不行。它将执行提升的 shell 并等待您键入命令。只有在您离开 sudo shell 后,它才会运行其他命令(使用原始帐户)。

cd./stop-all.shsudo 的子命令。所以你必须那样对待他们。

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

      sudo "cd /root/docker/storm-supervisor/ && ./stop-all.sh"

    但这可能需要修改 sudoers 文件。虽然这是正确的方法。

  • 或者您需要将命令提供给 sudo 输入:

      echo "cd /root/docker/storm-supervisor/ && ./stop-all.sh && exit" | sudo
  • 或者将所有内容都提供给 Plink 输入:

    (
    echo cd /root/docker/storm-supervisor/
    echo ./stop-all.sh
    ) | plink -ssh -l username -pw root username@10.223.26.34 -t sudo -i
  • 甚至:

    (
    echo sudo -i
    echo cd /root/docker/storm-supervisor/
    echo ./stop-all.sh
    ) | plink -ssh -l username -pw root username@10.223.26.34 -t

关于powershell - 使用 Plink 执行 (sudo) 子命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432962/

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