从Jenkins中运行的脚本通过远程ssh将文件内容分配给变量

时间:2014-08-21 16:21:36

标签: linux ssh jenkins cat assign

我已经从脚本打开了一个远程ssh会话,而在远程服务器上有一个包含版本信息的文件。 我正在尝试将该版本分配给变量,并将当前版本内容移动到与版本相同的文件夹名称。

主脚本在jenkins

中运行

我正在做这样的事情

ssh -i /home/user/.ssh/id_rsa -t -t remoteServer<<EOF
cd $WEB_DIR
VERSION=$(cat $WEB_DIR/version.info)
mv -f $WEB_DIR $BACKUP_DIR/$VERSION
exit
EOF

我的VERSION变量始终为空。当我在该服务器上本地运行时它给我版本值。与脚本

中的远程ssh会话有所不同

1 个答案:

答案 0 :(得分:1)

实际上我找到了通过两个步骤完成它的方法。

$ WEB_DIR设置为主脚本中设置的局部变量。

$WEB_DIR="/usr/local/tomcat/webapps/ROOT"

OLD_VERSION=$(ssh -i /home/user/.ssh/id_rsa -tt user@remoteServer "cat $WEB_DIR/version.info")

ssh -i /home/user/.ssh/id_rsa -t -t user@remoteServer<<EOF
cd $WEB_DIR
mv -f $WEB_DIR $BACKUP_DIR/$OLD_VERSION
# I am executing more commands in here
exit
EOF

使用双引号&#34;&#34;如果想要使用局部变量,必须在第一个命令中。