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.