27

I am trying to execute a few commands via my first script but it's not working.

#!/bin/bash

#connect to server
echo "Connecting to the server..."

ssh -t root@IP '

    #switch user to deploy
    su - deploy

    #switch path
    echo "Switching the path"
    cd /var/www/deploys/bin/app/config

    #run deploy script
    echo "Running deploy script"

    /usr/local/bin/cap -S env=prod deploy

    #restart apache
    sudo /bin/systemctl restart  httpd.service

    bash -l
'

What is happening? I am successfully connected to the server, the user is changed and then I don't see nothing happening. When I press ctrl + c just like that in terminal, some output from the command that should be executed appears but there are some errors.

Why I don't see everything what is happening in terminal after launching the script? Am I doing it the wrong way?

BTW: when I try connect manually and run the commands myself, everything is working nicely.

Using CentOS 7.

1 Answer 1

64

Clean way to login through ssh and excecute a set of commands is

ssh user@ip << EOF
   #some commands
EOF

here EOF acts as the delimitter for the command list

the script can be modified as

ssh -t root@IP << EOF

    #switch user to deploy
    su - deploy

    #switch path
    echo "Switching the path"
    cd /var/www/deploys/bin/app/config

    #run deploy script
    echo "Running deploy script"

    /usr/local/bin/cap -S env=prod deploy

    #restart apache
    sudo /bin/systemctl restart  httpd.service

    bash -l
EOF

will excecutes the command and closes the connection there after

Sign up to request clarification or add additional context in comments.

2 Comments

I had to add -t -t per these instructions but otherwise this is great
can I remove bash -l? don't quite understant its use.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.