`

ant使用ssh和linux交互 如:上传文件

阅读更多
 

背景:

ant生成jar包之后,每次都要往目标机器上拷贝部署,真是难受。

 

本机又是Windows ,运行机器是linux,如何办?来个共享?安装samba?

 

高人指点,采用ftp,要去配置个ftp还是不爽的事情,想既然ant支持ftp肯定考虑支持sftp等关于ssh的功能,一查发现,果然还是支持的。兴奋!

 

一、寻找资源文件

看ant的文档:

http://ant.apache.org/manual/Tasks/scp.html

 

在依赖的jar包列表 http://ant.apache.org/manual/install.html#librarydependencies 中找到

jsch.jar 0.1.42 or later

 

进入http://www.jcraft.com/jsch/index.html 找到下载地址:http://sourceforge.net/projects/jsch/files/jsch/jsch-0.1.43.jar/download

 

源码地址:http://sourceforge.net/projects/jsch/files/jsch/jsch-0.1.43.zip/download

 

二、测试可行性

下载后,放入自己的ant下的lib文件夹下,如果是eclipse需要加入运行环境window->preferences->ant->runtime->classpath中加入jsch-0.1.43.jar

 

例子,可以采用http://ant.apache.org/manual/Tasks/scp.html里面的examples,还挺全的,拷贝单个文件,拷贝文件夹,设置密码,设置私钥等

scp

下面亲自测试几个:

    
    <target name="scp-file">
        <scp file="jar/fetch.jar" todir="uu:123@192.168.0.175:/home/uu/fetch" />
    </target>
   
    <target name="scp-folder">
            <scp todir="uu:123@192.168.0.175:/home/uu/fetch" >
                 <fileset dir="jar"/>
            </scp>
    </target>

com.jcraft.jsch.JSchException: reject HostKey: 192.168.0.175

 

会有以上的异常,奇怪的官方文档不说。要求你所连接的host必须存在于你的knownhosts文件中,并且 这个文件也必须是存在的,否则会出现上面的异常。

 

解决方法:

 

    <target name="scp-file">
        <scp file="jar/fetch.jar" todir="uu:123@192.168.0.175:/home/uu/fetch" trust="true"
/>
    </target>
   
    <target name="scp-folder">
            <scp todir="uu:123@192.168.0.175:/home/uu/fetch" trust="true"
>
                 <fileset dir="jar"/>
            </scp>
    </target>

 

sshexec

再测试一下诱惑人的可执行shell功能,文档地址;http://ant.apache.org/manual/Tasks/sshexec.html

<target name="sshexec">
	 <sshexec host="192.168.0.175"
		username="uu"
		password="123"
		command="touch somefile;ls;df -h;" trust="true"/>
</target>
 

若个命令可以用;号隔开。

 

关于拷贝远程到本地,拷贝本地到远程,选取特定文件等等,都是变通可行的,本文就不再演示了。

 

1
0
分享到:
评论
1 楼 di1984HIT 2016-07-20  
学习了~~~    

相关推荐

    ant处理cvs时环境安装

    在IT行业中,Ant和CVS是两个非常重要的工具,它们分别用于构建自动化和版本控制。在本篇中,我们将深入探讨如何使用Ant处理CVS(Concurrent Versions System)时的环境安装及其相关知识点。 首先,Ant是Apache软件...

    J2SSH(Java SSH API )使用文档

    5. **断开连接**:使用完毕后,记得关闭所有资源,包括 SSH 通道和客户端连接。 ```java sftp.close(); session.close(); client.disconnect(); ``` J2SSH 的文档是持续更新的工作,鼓励用户和开发者贡献自己的...

    ANT和OpenSSH在Java Web数据安全传输中的应用.pdf

    2. SSH通道方式:这种方式使用SSH建立一个安全的隧道,通过该隧道执行sftp命令或者直接在ANT脚本中使用sftp任务进行文件传输。这种方式可以实现交互式的文件传输,同时保持加密保护。 为了在Windows环境下使用...

    linux命令大全+Linux应用技术精华

    3. **进程管理**:使用`ps`查看进程,`top`或`htop`实时监控系统性能,`kill`和`pkill`结束进程。 4. **脚本编程**:学习bash shell,编写自动化脚本,如定时任务、数据处理等。 5. **文件系统和挂载**:理解EXT4、...

    EasyXMS是一个Java编写的用于批量管理.rar

    EasyXMS是一个Java编写的用于批量管理Linux服务器的简易系统,如:多线程批量执行命令、多线程批量上传文件等功能. 2种使用模式: 1.交互模式执行动作 2.直接在命令行执行动作 一、运行环境 JDK1.6+ 二、注意事项 1....

    EasyXMS:EasyXMS是一个Java编写的用于批量管理LinuxUnix服务器的简易系统,如:多线程批量执行命令、多线程批量上传文件等功能

    EasyXMS是一个Java编写的用于批量管理Linux服务器的简易系统,如:多线程批量执行命令、多线程批量上传文件等功能. 2种使用模式: 1.交互模式执行动作 2.直接在命令行执行动作 一、运行环境 JDK1.6+ 二、注意事项 ...

    Hadoop深度实战

    - **检查ssh当前版本**:使用命令`ssh -V`检查已安装的SSH版本。 - **安装ssh**:使用命令`sudo apt-get install openssh-server`安装SSH服务。 - **配置为可以无密码登录本机**:使用命令`ssh-keygen`生成密钥;...

    iuhyiuhkjh908u0980

    22. **Linux部署**:使用Ant脚本进行远程Linux服务器上的应用部署,可能涉及SSH连接和文件传输。 23. **Cobertura覆盖率工具**:用于测试覆盖率,可以与Tomcat结合使用,但需要解决部署和运行时的问题。 24. **...

    离线手动安装kenkins的常用插件

    本文将详细介绍如何在Linux环境下离线安装Jenkins,并关注于支持Subversion (svn)、SonarQube (sonar)、Ant等工具的插件安装。 首先,你需要下载Jenkins的war包,这是Jenkins服务器的基础。然后,你需要在有网络的...

    selenium培训

    - **Eclipse开发Selenium 2测试代码**:使用Eclipse IDE来编写和调试Selenium测试脚本。 - **代码封装技巧**:学习如何通过代码封装来提高测试脚本的复用性和可维护性。 - **Selenium 2通用控件库封装**:构建一个...

    Morph-开源

    5. **linux.xml** 和 **windows.xml**:这些XML配置文件可能定义了针对不同操作系统(Linux和Windows)的命令行操作映射,使Morph能够适应不同的命令行环境。 6. **build.xml**:这是一个Ant构建文件,用以自动化...

Global site tag (gtag.js) - Google Analytics