$是ant中需要转义的,使用$$代替$,不能使用\$,在linux控制台下,输入命令时用的是\$.
三种通配符:
**,*,?
?用于匹配1个字符
*,匹配任意字符,0个或者多个,常用于匹配文件类型,或者URL
**,任意目录或者文件,包含任意多个子目录
以ant中copy的用法为例:
<copy todir="${src.dir}" verbose="false" preservelastmodified="true" >
<fileset dir="${home.dir}">
<exclude name="**/build?/**"/>
<exclude name="**/workspace/**"/>
<exclude name="**/*.java"/>
<exclude name="**/log.*"/>
</fileset>
</copy>
其中 <exclude name="**/build?/**"/>表示不包含build?目录,如果build1,build2等
<exclude name="**/*.java"/>,表示不包含所有java类型的文件
<exclude name="**/log.*"/>,表示不包含所有文件名为log,文件扩展名任意的文件
verbose="false" :不显示copy的详细信息,比如哪个文件被copy了;但如果出错,或显示copy出错信息。
preservelastmodified="true" :保留修改时间,这样就容易看出哪些是新文件。
ant中的copy 还可以指定编码。
<target name="copydb" description="backup db">
<tstamp/>
<mkdir dir="${db.bak.dir}"/>
<sshexec host="${db.host}"
username="${user}"
password="${password}"
command="mysqldump -uuser -ppassword -h192.168.1.2 -B t_work |gzip >${db.bak.dir}/${DSTAMP}${TSTAMP}t_work.sql.gz" trust="t
rue"/>
</target>
上述命令可实现 ssh登录,并远程执行数据库备份命令,
其中<tstamp/> ,会生产2个属性,后面用到的${DSTAMP}和${TSTAMP},表示日期和时间,用于生产唯一id,使得文件不重复
mysqldump -uuser -ppassword -h192.168.1.2 -B t_work |gzip >${db.bak.dir}/${DSTAMP}${TSTAMP}t_work.sql.gz" trust="true"
前半部分是一个 数据库备份命令,后半部分是通过管道使用gzip压缩,trust=”true"这个很有必要,表示2台机器互信,否者通常会失败。许多人不知道mysql可以很好的管道支持。如果需要从192.168.1.2上将t_work数据库导入192.168.1.3上,可以如下命令替换:
mysqldump -uuser -ppassword -h192.168.1.2 -B t_work |mysql -uuser -ppassword -h192.168.1.3
在实现用ant脚本进行2台机器的远程登录执行命令前,需要使用RSA认证。可搜索“Linux ssh 不输入密码”
其实scp也是一样的。使用了该密钥认证后,ssh,scp均不需要输入密码。
Linux SSH 互信 不需要输入密码具体操作
这一段不知道从哪摘下来的 写道
Linux scp复制文件,不需要输入密码的技巧
一,在linux100主机里的用户
运行
#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
Enter passphrase (empty for no passphrase):#回车
Enter same passphrase again:#回车
会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
二,把linux100主机上的id_rsa.pub文件拷贝到linux200主机的root用户主目录下的.ssh目录下,并且改名为authorized_keys
这样在linux100主机上使用scp命令复制文件到linux200上将不提示输入密码了,直接复制了。
写道
在上面一步改名authorized_keys,有可能以及存在了,因此可以改成追加:
cat id_rsa.pub >>~/.ssh/authorized_keys
然后测试下:
[root@locahost]# ssh 10.2.50.26
显示如下结果:
Last login: Wed Dec 12 13:40:39 2012 from 10.2.144.59
表明ssh不输入密码已经可以正常工作了
基于上述的几个步骤,就可以实现ant脚本,远程登录并执行简单mysql复制和备份以及文件的复制备份功能。
分享到:
相关推荐
linux版本的ant
13_ant_发布web项目和操作数据库13_ant_发布web项目和操作数据库
最新版linux apache-ant-1.9.15-bin.tar.gz
Jenkins自动集成构建用ANT环境发布数据库时由于环境问题报错的问题解决
JBPM4.4 mysql数据库创建脚本,修正ant create.jbpm.schema不能创建数据库的bug。
这是利用ant脚本向数据库中插入数据的示例,主要是包含了如何利用ant来执行Sql脚本向SQL Server中插入数据。
资源包括了linux下java开发的常用工具,jdk,tomcat,mysql,ant等,不用您去官方上一个一个下载,这里就有了
Ant安装build手册—LINUX Ant安装build手册—LINUX Ant安装build手册—LINUX
直接运行Ant 博文链接:https://spoony.iteye.com/blog/119344
ant ant ant antant ant ant antant ant ant ant
Ant安装build手册 ant是jakarta一个非常好的OpenSource子项目,是基于java的编译工具。介绍了在linux环境中如何安装ant。
防止代码丢失编写了一个自动备份的脚本。编写XML制定备份的原路径,备份目标地址路径和需要备份的时间即可。增量备份
使用 Eclipse 和 Ant 进行 Python 开发
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择...
最新版linux apache-ant-1.10.8-bin.tar.gz
hibernate+spring+junit+ant+mysql 小实例。能够当模板
利用ant脚本 自动构建svn增量/全量 系统程序升级包 标签: antsvn自动化测试发布 分类: ant 不会用ant打包、部署项目的工程师,不是一个好程序员(测试) 副标题:利用ant脚本 自动构建svn增量/全量 系统程序...
在本教程中,您将学习 Ant 这个 Java TM 项目生成工具。由于其灵活性和易用性,Ant 很快在 Java开发人员中流行开来,因此您有必要了解关于它的更多信息。