从脚本运行远程命令

时间:2016-09-05 09:17:28

标签: linux bash macos ssh sh

我需要在jenkins中运行一个shell脚本,以便在构建之后提交更改。将构建部署到远程服务器不是问题,因此新构建就在那里。我需要做的只是提交它。

为此,我需要使用shell脚本使用ssh登录到该远程服务器,到目前为止它是可以的:

#!/user/bin/expect -f
spawn ssh myusername@url
expect "password:"
send "mypassword\r"
interact

所以现在当我登录时,我想运行一些命令:cd /path/to/repository; svn commit -m "Some change log"

我尝试过类似的事情:

#!/user/bin/expect -f
spawn ssh -o "LocalCommand cd /path/to/repository" myusername@url
expect "password:"
send "mypassword\r"

但它只是不起作用,因为我不知道该怎么做。

如果有人知道该怎么做,请告诉我。

远程服务器在 linux 上运行,jenkins在 osx 上运行。

1 个答案:

答案 0 :(得分:0)

我发现解决方案只是期待:

#!/user/bin/expect -f
spawn ssh myusername@url
expect "password:"
send "mypassword\r"
expect "some server prompt"
send "cd /path/to/repository\r"
send "svn commit -m 'Some change log'\r"

修改

此解决方案似乎不时有效。我的意思是提交更改。