我遇到了與sshsession Ant任務有關的問題。使用sshsession執行遠程命令Ant任務
我正在寫一個部署腳本BZIP來源時,SCP存檔到遠程服務器上,然後解壓縮在遠程服務器上源和正確的目錄樹中複製文件。
(...)
<bzip2 src="/tmp/${selected.target}.tar" destfile="/tmp/${selected.target}.tar.bz2"/>
<scp file="/tmp/${selected.target}.tar.bz2" todir="[email protected]:/tmp/" keyfile="${user.home}/.ssh/id_rsa" trust="yes" passphrase="thisisasecret"/>
<sshsession host="server" username="user" keyfile="${user.home}/.ssh/id_rsa" trust="yes">
<sequential>
<untar src="/tmp/${selected.target}.tar.bz2" dest="/tmp/prova_untar" compression="bzip2"/>
(copy files)
</sequential>
</sshsession>
(...)
我的問題是在sshsession中指定的任務,因爲它們在本地執行,而不是在遠程服務器上執行。我想(但顯然我錯了)在sshsession標籤中指定的命令將在我剛剛連接的服務器上執行。我在文檔中看過,你可以指定隧道與localtunnel和remotetunnel,但我不知道我正確理解那些隧道的用途。有沒有人遇到同樣的問題,或有解決方案?我正在使用的Ant版本是1.8.2。 謝謝,
阿爾貝託
我認爲你需要使用[sshexec](https://ant.apache.org/manual/Tasks/sshexec.html)。 sshsession似乎是用於連接隧道,而不是用於執行reomote。 – oers 2011-12-14 11:35:03
謝謝oers。我選擇了sshsession,因爲我需要執行一個遠程命令列表,而sshexec只是每次打開一個新會話。 – geezmo 2011-12-14 11:37:17