SSH: Use Remote Bash / KSH source Command Set Variable Locally From a Remote Server

by on December 4, 2012 · 0 comments· last updated at December 4, 2012

I have setup a master / local server combination using OpenSSH. My local server depends upon master server for a remote sourcing. The remote sourcing should set a large number of variables locally in a bash shell script. The code is:

user@slave $ source ssh user@master "/service/dyn.master.setenv.sh --mode=slave"
echo "$var"

The var is not setting and I am getting various errors. How can I do a remote "source" of a bash script file (from master.example.com) and set a shell variable locally at slave.example.com?

Tutorial details
DifficultyEasy (rss)
Root privilegesNo
RequirementsBash/Ksh
Unix

You need to use eval or source command as follows to fix your problem:

source <(ssh user@server cat /path/to/varfile)

OR

eval $(ssh user@master cat /path/to/varfile)

Examples

Create a file called /tmp/foo on master server called master.example.com as follows:

JAIL=/lighttpd
PHP=/opt/bin/php5-cgi
MINIMAIL=/opt/bin/chroot-sendmail

Type the following command on server/workstation called slave.example.com (please note that [user@slave ~]$ is your prompt):

[user@slave ~]$ source <(ssh user@master.example.com  cat /tmp/foo)
[user@slave ~]$ echo "$JAIL $PHP $MINIMAIL"

OR

[user@slave ~]$ eval $(ssh user@master.example.com cat /tmp/foo)
[user@slave ~]$ echo "$JAIL $PHP $MINIMAIL"

Sample session

Following sample session uses localhost computer as a master and slave. However, the concept remains same for master.example.com and slave.example.com Server.

Fig.01: Bash remote source or eval  command to set variables locally

Fig.01: Bash remote source or eval command to set variables locally (click to enlarge)



You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

Tagged as: , , , , , , ,

Previous Faq:

Next Faq: