今天就跟大家聊聊有关如何使用Ant进行ssh和scp操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联建站拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕10余年,专业且经验丰富。10余年网站优化营销经验,我们已为成百上千中小企业提供了成都网站设计、成都网站建设解决方案,按需网站设计,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!
使用Ant进行ssh和scp操作
一、简介:
现在我们安装Linux的时候通常考虑到安全因素(默认情况下)是不打开telnet服务的,而ssh服务是有的,ant很早就支持telnet,但要求我们在Linux下要安装telnet-server,并要启用该服务。
还好自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提供支持,但是同样你也要在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环境必须在Window->Preferences->Ant->Runtime->Classpath中加入jsch-0.1.24。
JSch是一个SSH2的纯Java实现
JSch允许你连接到sshd server并采用端口映射,X11映射; Scp文件传输等,你可以把集成JSch提供的功能到你自己的Java项目中,JSch 的授权方式为 BSD形式。
二、简单例子:
下面是用JSch完成Sshexec和scp两个任务的最简单例子,如果需要更详细的内容,请参考Ant用户手册
[Sshexec任务]
trust="true" command="cd /;ls" /> 注意上面的trust属性一般设置为true, 如果为默认值false时,那么就要求你所连接的host必须存在于你的knownhosts文件中,并且这个文件也必须是存在的,否则会出现 com.jcraft.jsch.JSchException: reject HostKey: 192.168.122.180异常。执行Linux下的命令时可以用分号”;”把多个命令隔开,它们将会依次执行,而不需要写多个sshexec进行多次连接,每次连接只执行一个命令。 [scp任务]<远程以根目录计算> 1.拷贝单个文件到远端服务器 或 2.拷贝远端文件本地 3.拷贝远端目录到本地,将以递归形式操作 4.拷贝本地目录中的内容到远端,递归形式,但不在服务器上建立my-app目录 5.拷贝一系列的文件到远端,会建立相应的层次目录,不建立my-app目录 或 三、其他例子: 例子1: username="Linux server username" password="Linux server password" trust="true" command="Command you want to run on the server" /> 例子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操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
分享文章:如何使用Ant进行ssh和scp操作
网页地址:http://cdxtjz.cn/article/ipgdop.html