2016-09-05 15 views
0

jenkins内からシェルスクリプトを実行して、ビルド後に変更をコミットする必要があります。リモートサーバーへのビルドは問題ではないので、新しいビルドがそこにあります。私がする必要があるのは、それをコミットすることだけです。だから今、私がログインしていたときにスクリプトからリモートコマンドを実行する

#!/user/bin/expect -f 
spawn ssh [email protected] 
expect "password:" 
send "mypassword\r" 
interact 

、私はいくつかのコマンドを実行したい:私はシェルスクリプトを使用してそのリモートサーバにSSHでログインする必要があり、これまでのところ、それは大丈夫であることについては

cd /path/to/repository; svn commit -m "Some change log"

は、私のような何かを試してみました:

#!/user/bin/expect -f 
spawn ssh -o "LocalCommand cd /path/to/repository" [email protected] 
expect "password:" 
send "mypassword\r" 

をしかし、私はそれを行う方法を見当がつかないとそれだけで、動作しません。

誰かがそれを行う方法を知っている場合は、私に知らせてください。

linuxでリモートサーバが実行され、osxにジェンキンが実行されています。

+0

sshキーをセットアップすると、 'expect'を使ってそれらを渡す必要はありません。それから、シェルスクリプトから通常の 'ssh -t/command/to/arg1 arg2'を実行するだけです。 – xxfelixxx

+0

ありがとうございますが、私は 'expect'で解決策を見つけました –

答えて

0

私は期待だけで解決策を見つけた:

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

はEDIT:

このソリューションは、唯一の時間からの時間に動作するようです。私は変更をコミットすることを意味します。

関連する問題