如何使用Ant进行ssh和scp操作

技术如何使用Ant进行ssh和scp操作今天就跟大家聊聊有关如何使用Ant进行ssh和scp操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用Ant进行ssh

今天,我将和大家谈谈如何使用Ant进行ssh和scp操作。很多人可能不太了解。为了让大家更好的了解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。

使用Ant进行ssh和scp操作

一、导言:

现在,当我们安装Linux时,出于安全原因(默认情况下),我们通常不会打开telnet服务,而ssh服务是可用的。ant支持telnet已经很久了,但是我们需要在Linux下安装telnet-server并启用这项服务。

幸运的是,从Ant1.60开始,SSH和SCP操作都得到了支持。在Ant之前,如果要支持SSH、SCP、SFTP等任务,必须下载J2SH的j2ssh-ant.jar和J2SH-core . jar(在http://www.sourceforge.net的J2SH下下载)。现在您可以使用Ant提供的Sshexec和scp任务,由$ANT_HOME/lib/ant-jsch.jar支持,但是您还需要在http://www.jcraft.com/jsch/index.html,下载一个依赖包jsch-0.1.24.jar(文件名因版本而异),jsch也是http://www.sourceforge.net旗下的一个项目。

您需要将下载的jsch-0.1.24复制到$ANT_HOME/lib。如果是Eclipse下的Ant环境,必须将jsch-0.1.24添加到window-preferences-Ant-runtime-class path中。

JSch是SSH2的纯Java实现。

JSch允许您连接到sshd服务器,并使用端口映射和X11映射。Scp文件传输等。可以将JSch提供的功能集成到自己的Java项目中,JSch的授权方式是BSD。

第二,简单的例子:

下面是使用JSch完成Sshexec和scp任务的最简单的例子。如果您需要更多详细信息,请参考蚂蚁用户手册。

[Sshexec任务]

目标名称=' sshexec '

sshexec主机='10.14.50.63 '用户名='abs '密码='abs '

trust=' true ' command=' CD/;ls “/

/target

请注意,上面的信任属性通常设置为true。如果默认值为false,则要求您连接的主机必须存在于knownhosts文件中,并且该文件也必须存在。否则会出现com . jcraft . jsch . jschexception 3360拒绝主机密钥3360 192.168.122.180的异常。在Linux下执行命令时,可以使用分号分离多个命令,它们将依次执行,而不是为多个连接编写多个sshexec,每个连接只执行一个命令。

[scp任务]带根目录的远程计算

1.将单个文件复制到远程服务器。

scp文件=" c :/cmd . txt " todir=" root :123456 @ 192 . 168 . 122 . 180:/tmp " trust=" true "/

或者

scp file=" c :/cmd . txt " todir=" root @ 192 . 168 . 122 . 180:/tmp " password=" 123456 " trust=" true "/

2.本地复制远程文件

scp文件=" root :123456 @ 192 . 168 . 122 . 180:/tmp/cmd . txt " todir=" d :/my-app " trust=" true "/

3.将远程目录复制到本地区域,这将被递归操作。

scp文件=" root :123456 @ 192 . 168 . 122 . 180:/tmp/* " todir=" d :/my-app " trust=" true "/

4.递归地将本地目录的内容复制到远程端,但不要在服务器上设置my-app目录。SCPTIDIR=" root :123456 @ 192 . 168 . 122 . 1803360/tmp/" Trust=" true "

文件集dir="d:/my-app"/

/scp

5.将一系列文件复制到远端,会建立相应的分层目录,而不是my-app目录。

scp todir=" root :123456 @ 192 . 168 . 122 . 180:/tmp " trust=" true "

不间断空格

;<fileset dir=“d:/my-app”>

      <include name=“**/*.java” />

   </fileset>

</scp>

<scp todir=“root:123456@192.168.122.180:/tmp” trust=“true”>

   <fileset dir=“d:/my-app” excludes=“**/*.java”/>

</scp>

三、其他例子:

例子1:

<project name="buildssh" default="DEFAULT" basedir=".">

<target name="init">

<!--   set   properties,   mkdir,   etc.   -->

<property file="build.properties" />

<property name="this.project" value="buildssh" />

<echo message="init   in   ${this.project}" />

<tstamp />

</target>

<target name="DEFAULT" depends="init">

<echo message="connecting   to   ${build.server}" />

<sshexec host="Linux   server   IP   address" 

username="Linux   server     username"

password="Linux   server   password" trust="true"

command="Command   you   want   to   run   on   the   server" />

</target>

</project> 

例子2:

import com.jcraft.jsch.Channel;

import com.jcraft.jsch.ChannelSftp;

import com.jcraft.jsch.JSch;

import com.jcraft.jsch.Session;

import com.jcraft.jsch.UserInfo;

public class ExecSCP {

public static final UserInfo defaultUserInfo = new UserInfo() {

public String getPassphrase() {

return null;

}

public String getPassword() {

return null;

}

public boolean promptPassword(String arg0) {

return false;

}

public boolean promptPassphrase(String arg0) {

return false;

}

public boolean promptYesNo(String arg0) {

return true;

}

public void showMessage(String arg0) {

}

};

public static void main(String[] args) throws Exception {

String hostname = "10.14.50.63";

String username = "abs";

String password = "abs";

String remoteFile = "asbpack.sh";

String localFile = "C:\\";

JSch jsch = new JSch();

/**

* 22为端口

*/

Session session = jsch.getSession(username, hostname, 22);

session.setPassword(password);

session.setUserInfo(defaultUserInfo);

session.connect();

Channel channel = session.openChannel("sftp");

channel.connect();

ChannelSftp c = (ChannelSftp) channel;

c.get(remoteFile, localFile);

session.disconnect();

}

}

看完上述内容,你们对如何使用Ant进行ssh和scp操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81172.html

(0)

相关推荐

  • apachesuperset权限控制(apachesuperset使用方法)

    技术如何进行Apache Superset远程代码执行漏洞如何进行Apache Superset远程代码执行漏洞,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,

    攻略 2021年12月21日
  • kcl方程,基尔霍夫解光的电磁波方程

    技术kcl方程,基尔霍夫解光的电磁波方程1、假设各支路电流正方向及回路的绕行方向kcl方程。
    2、应用KCL列出节点的电流方程。对于有n个节点的电路,只能选取n-1个节点列方程。
    3、应用KVL列出回路的电压方程。对于有

    生活 2021年10月19日
  • 一句,你最喜欢的句子是哪一句

    技术一句,你最喜欢的句子是哪一句打开巜毛选》一句,翻开毛主席语录,句句都是美句、金句,都闪耀着万丈光芒。只要你带着问题带着感情去读,并认真领会,将越读越想读,越读越有劲,总觉得心中有一股暖流在全身流动,你将会被那崇尚的思

    生活 2021年10月20日
  • 含有雨字的诗句,带有雨字的积极向上的诗句

    技术含有雨字的诗句,带有雨字的积极向上的诗句好雨知时节,当春乃发生  “好雨知时节,当春乃发生”出自唐朝诗人杜甫的古诗作品《春夜喜雨》第一二句,其全诗文如下:  好雨知时节,当春乃发生含有雨字的诗句。  随风潜入夜,润物

    生活 2021年10月23日
  • oracle数据库CPU过高问题分析

    技术oracle数据库CPU过高问题分析这篇文章主要讲解了“oracle数据库CPU过高问题分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle数据库CPU过高

    攻略 2021年11月11日
  • redis未授权

    技术redis未授权 redis未授权Redis服务简介
    Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可

    礼包 2021年11月9日