使用Ant和批处理备份数据

      之前每周任务里都会安排一个备份资料、代码的任务,无非是压缩成rar文件,然后缀上当前日期。一般一个月或者一周备份一次,虽然并不频繁却也非常麻烦。最近学习Ant和bat批处理,突然想到可以设定批处理任务来进行定时进行这些操作。思路为:文件由ant压缩命令拷贝到备份目录下,代码由svn导出备份,日常进行增量备份。这些操作可以用计划任务进行每日或者每周执行。

      这里以E盘下file文件夹压缩到E盘下,命名为fileyyyy-mm-dd.rar为例。首先编写ant脚本文件build.xml,再编写bat文件执行ant构建命令,最后设定定期定时执行任务即可。

Build.xml文件编写方法见参考1-4,其内容为:

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" default="root">
         <propertyname="file" value="e:\file" />
         <targetname="root" depends="copy">
                   <echo>ok</echo>
         </target>
         <targetname="backup">
                   <zipdestfile="file${TODAY}.rar" basedir="e:\file" />
         </target>
         <targetname="copy" depends="backup">
                   <movefile="file${TODAY}.rar" tofile="e:\file${TODAY}.rar" />
         </target>
         <tstamp>
                   <formatproperty="TODAY" pattern="yyyy-MM-dd" locale="en"/>
         </tstamp>
</project>

      上述脚本中,tstamp方法定义了TODAY的时间戳变量,用于给rar文件缀上日期信息。

      Bat编写方法参考5,其内容为:

@echo off
echo -------------------------
echo WeeklyBackup
echo 2012.11.26
echo [email protected]
echo -------------------------
ant
@echo off
Pause

      注意这里的代码也放在build.xml的统计目录下,所以直接执行ant命令即可。

      另外每周自动备份svn数据库的bat文件为:

set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set svndb=svn_%year%%month%%day%.svnbak
svnadmin dump d:\svndb>%svndb%

      而每天定义进行增量备份svn数据库和备份MySql数据库的scx数据库的bat文件为:

set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set scx_db=scx_db_%year%%month%%day%.sql
set svndb=svn_%year%%month%%day%.svnbak
set svndb_incremental=svn_incremental_%year%%month%%day%.svnbak
svnadmin dump --incremental --revision 300:HEADd:\svndb>%svndb_incremental%
cd D:\Program Files\phpStudy\MySQL\bin
net start mysql
mysqldump -uroot -proot scx >d:\bat\%scx_db%

      任务计划设置为:

使用Ant和批处理备份数据_第1张图片

参考

1.      Ant脚本的详细配置

2.      Ant的主要任务的语法

3.      Ant结构化程序设计和WEB程序发布

4.      Ant系统构建工具的使用

5.      Win下自动备份MySql数据库

你可能感兴趣的:(使用Ant和批处理备份数据)