≡ Menu

HowTo: Execute A Script On Remote UNIX / Linux Server

How do I execute a script on remote server called server2.example.com from my PC? How to run a shell/python/perl script on remote Unix-like systems?

You can use the ssh client which is a part of most *BSD/Linux/OS X/Linux distros/Unix-like oses. If you are on MS-Windows operating systems you need to download and use Putty client.
Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Requirements1m
Estimated completion timeN/A

ssh command line syntax

The basic syntax is as follows:

ssh user@server-name-here /path/to/script
ssh user@server-name-here /path/to/script arg1 arg2 arg3

OR

ssh user@server-name-here /path/to/command
ssh user@server-name-here /path/to/command arg1 arg2

Examples

Open the Terminal. To run a script called /root/scripts/backup.sh on remote UNIX or Linux server called server1.cyberciti.biz, enter:

ssh root@server1.cyberciti.biz /root/scripts/backup.sh

You can pass command line arguments too:

ssh root@server1.cyberciti.biz /scripts/job.init --job=sync --type=aws --force=true

You can execute the date command as follows on remote server:

ssh user@server2.example.com date

You may need to specify full script path. In this example, run /root/backup.sh script as follows:

ssh user@server2.example.com /root/backup.sh

To avoid password prompt set password less ssh keys or use tool such as keychain - a manager for ssh-agent, typically run from ~/.bash_profile.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 9 comments… add one }

  • Yong Cao June 21, 2010, 4:17 pm

    This is very good and helpful stuff.
    Thanks a lot
    Yong Cao

  • jay P March 2, 2012, 4:49 am

    How can I add Password to this “ssh user@server2.example.com date”

    • webskein March 11, 2012, 4:43 pm

      jay – you could try “passwordless ssh”. There’s stuff on Google about that.

  • Murryy December 11, 2012, 7:19 pm

    will this work if the script on the remote is interative ? If not can anyone give more suggestions.
    Thank you

  • kavin June 10, 2013, 6:51 am

    Thanks working fine

  • M.C. Swart November 22, 2013, 1:08 pm

    How to start this by a cronjob

  • Pranesh November 5, 2014, 3:03 pm

    How to run these below at the same time. (Parallelly). Is it possible?
    by anyway is fine like (Perl/Python/shell)

    ssh user@server1 /root/scripts/backup.sh
    ssh user@server2 /root/scripts/backup.sh

    • Mahendra February 6, 2015, 5:15 am

      Put & at the end of the command as below. Ampersand will put the command in the background.
      ssh user@server1 /root/scripts/backup.sh &
      ssh user@server2 /root/scripts/backup.sh &

  • Abhishek I February 23, 2015, 1:44 pm

    Thank you.
    This helped me.

Leave a Comment