使用Ant執行SSH

原本佈署的工作得在兩個server間用putty換來換去的
今天閒來無事就想說用ant一次解決好了
果然,ant沒讓人失望!

第一步:
[quote]自Ant1.60開始支持了SSH 及SCP 操作了,早在Ant之前若要支持SSH、SCP、SFTP等任務就必須下載j2ssh的j2ssh-ant.jar和j2ssh-core.jar(在http://www.sourceforge.net的j2ssh下有下載)。

現在可以使用Ant提供的Sshexec和scp任務,由$ANT_HOME/lib/ant-jsch.jar提供支持,但是同樣你也要在[url]http://www.jcraft.com/jsch/index.html[/url]下載一個依賴包jsch-0.1.24.jar(文件名因版本而不同),jsch同樣也是http://www.sourceforge.net下的一個項目。

你需要把下載的jsch-0.1.24拷貝到$ANT_HOME/lib下,如果是Eclipse下的Ant環境必須在[b]Window->Preferences->Ant->Runtime->Classpath[/b]中加入jsch-0.1.24。[/quote]

第二步:
[quote]

<target name="sshexec">
<sshexec host="192.168.122.180" username="root" password="123456"
trust="true" command="cd /;ls"/>
</target>

注意上面的trust屬性一般設置為true, 如果為默認值false時,那麼就要求你所連接的host必須存在於你的knownhosts文件中,並且這個文件也必須是存在的,否則會出現 com.jcraft.jsch.JSchException: reject HostKey: 192.168.122.180異常。
[b]執行Linux下的命令時可以用分號";"把多個命令隔開[/b],它們將會依次執行,而不需要寫多個sshexec進行多次連接,每次連接只執行一個命令。[/quote]

官方的說明:[url]http://ant.apache.org/manual/OptionalTasks/sshexec.html[/url]

有一點很奇怪,就是我在呼叫remote的ant時都會找不到,最後只好使用絕對路徑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值