Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Executing (sudo) subcommands using Plink

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 [email protected] -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.

like image 902
Sam Shurp Avatar asked Feb 28 '26 00:02

Sam Shurp


1 Answers

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
    
  • Or feed everything to Plink input:

    (
      echo cd /root/docker/storm-supervisor/
      echo ./stop-all.sh
    ) | plink -ssh -l username -pw root [email protected] -t sudo -i
    
  • Or even:

    (
      echo sudo -i
      echo cd /root/docker/storm-supervisor/
      echo ./stop-all.sh
    ) | plink -ssh -l username -pw root [email protected] -t
    
like image 140
Martin Prikryl Avatar answered Mar 02 '26 14:03

Martin Prikryl



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!