项目中经常要从服务器一大堆文件中选择部分文件下载,如果手动选中,然后再下载的话,很容易出错。经过程序改造后,现在只要提供一些列文件名,然后用ant调用scp命令就可以远程拷贝下来了,而且避免了错误。呵呵,能省则省!能用程序实现的就不用人工。
第一步:下载依赖的jar包(jsch-0.1.44.jar)
自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(此jar文件为ant自带,不用单独下载)提供支持,但是同樣你也要在http://www.jcraft.com/jsch/index.html下載一個依賴包jsch-0.1.44.jar(文件名因版本而不同),jsch同樣也是http://www.sourceforge.net下的一個項目。
你需要把下載的jsch-0.1.44拷貝到$ANT_HOME/lib下,如果是Eclipse下的Ant環境必須在Window->Preferences->Ant->Runtime->Classpath中加入jsch-0.1.24。
第二步:
- <target name="scp">
- <scp
- file="root:123456@192.168.1.101:/home/root/a061.zip"
- todir="d:/zips/a061.zip" trust="true"/>
- </target>
参考文章:
http://eggboss.iteye.com/blog/515453
http://1.1.14.blog.163.com/blog/static/7290142200931203322899/