3bl7f5ps76 发表于 2016-6-9 09:40:19

Ant脚本 ftp、telnet、ssh 使用


[*]1编写脚本前说明
[*]1.1需求:远程部署
[*]1.2详细描述:
[*]1、将编译完成的文件COPY到远程服务器上。
[*]2、执行远程服务器上的批处理命令,进行清理TOMCAT,并进行发布。
[*]1.3操作系统:Windows2008(ant编译机);windows2003(发布应用的服务器)
[*]1.4依赖:jakarta-oro-2.0.8.jar,
[*]下载地址:http://archive.apache.org/dist/jakarta/oro/
[*]commons-net-1.4.1.jar,
[*]下载地址:http://apache.mirror.phpchina.com/commons/net/binaries/
[*]放在引用的LIB目录下,虽然ANT里特别提到不要放到ANT安装目录的LIB下,不过我还是放在下面了。
[*]
[*]1.5类定义:<taskdefname="telnet"classname="org.apache.tools.ant.taskdefs.optional.net.TelnetTask"/>
[*]
[*]1.6其它说明:
[*]1、使用FTP时,必须使用被动模式。服务器上需要安装FTP服务。
[*]2、使用TELNET时,服务器端的TELNET服务需要打开。并且不使用验证方式NTLM。可以使用tlntadmn设置。
[*]3、使用SSH时,服务器上也需要安装SSH服务。
[*]2脚本例子
[*]2.1ANTFTP脚本<?xmlversion="1.0"?>
[*]<project>
[*]<targetname="ftp"description="ftp">
[*]<ftpserver="172.16.91.4"
[*]userid="ftp"
[*]password="ftp">
[*]<filesetdir="${RELEASE_12580_DIR}">
[*]</fileset>
[*]</ftp>
[*]</target>
[*]</project>
[*]
[*]
[*]2.2ANTTELNET脚本
[*]
[*]<?xmlversion="1.0"?>
[*]<project>
[*]<targetname="telnet"description="telnet">
[*]<telnetuserid="administrator"password="**********"
[*]server="172.16.80.228"port="23"initialCR="yes"timeout="50">
[*]<readtimeout="30">*</read>
[*]<write>starte:\test.bat</write>
[*]</telnet>
[*]</target>
[*]</project>
[*]
[*]
[*]出现的问题:
[*]1、使用ANT调用FTP时,客户端的防火墙需要进行设置,不限制FTP程序。
[*]2、TELNET对WINDOW的支持感觉很差,尝试了多次,有时成功有时不成功。最终放弃。TELNET不支持进行本地某个目录。如<write>cde:\test</write>这样是不可以的。另外由于不能进入本地的某个目录,所以也无法使用<readtimeout="30">e:\test</read>来验证是否进入想要登录的目录,无法决定是否发送下次指令。而ANT中TELNET只有<read>指令读取成功,才会进行下一条。所以发送<write>指令无法控制。
[*]3、还有一个问题是,telnet到服务器后,用tlntadmn-s查看,都是一连接,就马上断开了,所以有时无法执行远程的批处理命令。不能稳定地运行。目前不知道解决方法
[*]2.3ANTSSH脚本<?xmlversion="1.0"?>
[*]<project>
[*]<targetname="sshexec"description="sshexec”
[*]<sshexechost="172.16.91.4"
[*]username="administrator"
[*]password="***********"
[*]port="22"
[*]trust="true"
[*]command="i:/ecom/deploy_test.bat"/>
[*]</target>
[*]</project>
页: [1]
查看完整版本: Ant脚本 ftp、telnet、ssh 使用