Remotely run a command on a ssh-server with a script
Solution 1:
You can pass a command (or list of commands, separated by ;
or &&
) to a SSH connection like this:
ssh user@server-address "./foo 1"
If you have a local script that outputs 0
or 1
, you can simplify things further:
ssh user@server-address "./foo $(/path/to/your/local/script)"
The code in $(...)
executes before anything else and its output is put into the line dynamically. It's called command substitution.
Solution 2:
As Oli commented, you can tell SSH to send commands. You could modify your script so that if your command line arg is 1 it sends ssh user@server "shutdown -h now"
. Keep in mind that you'll have to be superuser on the other machine to shut it down.
EDIT:
Instead of using root, as is suggested in the comments put user
into the sudoers file as being able to shut down the machine without a password.