testLink自动备份与恢复 | mysql备份与恢复

需求场景:

      有台testLink服务器,需要把数据定期备份一份,以便在其它电脑恢复。

实现思路:

      1、把testlink的 数据库备份一份;

      2、把附件备份一份;

      3、在其它电脑安装好testLink后,恢复DB,粘贴附件即可。

 

备份实现过程:

testLink自动备份与恢复 | mysql备份与恢复_第1张图片

      1、创建一个目录 myBackData,用于存放脚本与备份的数据;

      2、创建一个目录 testlinkBak 用于保存所有的备份;

      3、在备份目录下创建一个目录(用当前时间命名),用于保存当天的备份;

      4、导出 testlink 数据库数据到 当天目录下,命名为 testlink_bak.sql;

      5、把 testlink的附件目录 upload_area copy到当天的备份目录下;

     6、完成备份;

     7、恢复数据非常简单,这里省略,可以手动恢复,参考如下命令:

     mysql -uroot --default-character-set=utf8  DBName < DBName.sql

 

bat实现过程:

-----rem 文件名为:exportTableExt.bat

@echo off
    rem 功能1:把数据库 testlink 导出到文件 testlink.sql 中;
    rem 功能2:为了保存历史数据,复制一份数据到文件名含日期的文件中;
    
    rem 设置备份的文件名称    
    set bakBaseDir=%cd%\testlinkBak
    set bakFileName=testlink_bak.sql
    
    
    rem 获取当前8位日期
    set date=%date%
  set b=%date:/=-%
  set Y=%b:~0,4%
  set M=%b:~5,2%
  set D=%b:~8,2%
  set YMD=%Y%%M%%D%
 
    rem 获取当前的8位时间
  set hh=%time:~0,2%&set mm=%time:~3,2%&set ss=%time:~6,2%
  if %hh% LEQ 9 set hh=0%hh:~1,1%
  if %mm% LEQ 9 set mm=0%mm:~1,1%
  if %ss% LEQ 9 set ss=0%ss:~1,1%
  set HMS=%hh%%mm%%ss%
 
     
  rem 如果备份根目录不存在则创建
  if not exist %bakBaseDir% md %bakBaseDir%

  rem 如果当天备份目录不存在则创建
  set todayBakPath=%bakBaseDir%\%YMD%_%HMS%
  if not exist %todayBakPath% md %todayBakPath%

  rem set bakPath=%SQLBakDir%\%bakFileName
  rem 在文件后面增加年月日    
  rem set bakPath=%SQLBakDir%\%bakFileName%_%YMD%_%HMS%.sql


    rem 生成默认的恢复文件

  cd ..\bin
  mysqldump -uroot --default-character-set=utf8  testlink >%todayBakPath%\testlink_bak.sql
  #导入命令如下
  #mysql -uroot --default-character-set=utf8  DBName < DBName.sql  
 
  rem 生成备份的文件,与上面的内容一样,这个只是用来归档查看。

 
  echo 备份数据库完毕!

rem -----------以上完成DB的备份-------------------

rem 设置备份的文件名称    
set bakBaseDir=%cd%
set src_upload_area=%cd%\..\..\testlink\upload_area
set dst_upload_area=%todayBakPath%\upload_area

if not exist %dst_upload_area% md %dst_upload_area%
xcopy %src_upload_area%\* %dst_upload_area% /e
   

 

 

你可能感兴趣的:(bat)