Executing (sudo) subcommands using Plink

允我心安 提交于 2020-01-13 19:22:12

问题


I am trying to command Linux machine from Window PowerShell. The commands are dependent on the fail/pass of the commands before. Therefore, I have to put all the commands together. I have tried multiple ways of putting commands together but at the ends I only receive the output of the first command.

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"

The actual result: Only receives the output of the first command.

Expected result: Receives output of the final command.


回答1:


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

Try your command in Linux shell. It won't work either. It will execute an elevated shell and wait for you to type commands. Only after you leave sudo shell, it will run the other commands (using the original account).

The cd and ./stop-all.sh are sub-commands of the sudo. So you have to treat them that way.

  • Best way is to provide the commands on sudo commandline:

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

    But that will probably require modifications of the sudoers file. Though it's the right way.

  • Or you will need to feed the commands to sudo input:

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


来源:https://stackoverflow.com/questions/54432962/executing-sudo-subcommands-using-plink

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!