Windows局域网内使用robocopy远程备份禅道文件

一、需求说明

由于工作需要,备份禅道数据文件,将局域网内192.168.30.20机器上的文件备份到192.168.30.22机器上,需要备份的文件如下图所示,需要备份*.sql.php、* .file等文件,不备份*.code目录
备份数据列表

二、备份文件

查找资料后选择使用robocopy创建Windows批处理任务,并使用Windows的定时任务每日执行任务进行备份。robocopy是windows7以后自带的文件复制工具,可以在终端输入robocopy /? 查看不同参数的定义。
备份脚本放在192.168.30.20机器上,文件备份代码如下:

  • copy_backup.bat
rem 实现远程拷贝的批处理代码

rem 开始copy

@echo off
set filename=zentao_backup.log

echo -------------------Backup Zentao Log Files------------------------- >>%filename%

echo Start >>%filename%

echo (%date% %time%) >>%filename%

echo Backup Zentao log files in E:\xampp\zentao, Please wait... >>%filename%

SETLOCAL ENABLEDELAYEDEXPANSION 

set srcdir=E:\xampp\zentao\tmp\backup\

set dstdir="\\192.168.30.123\e$\zentao\backup"

rem 使用共享文件夹

net use "\\192.168.30.123\e$\zentao\backup"  "123456" /user:Administrator

robocopy %srcdir% %dstdir%   *.* /E /XD *.code

pause

echo End >>%filename%

echo (%date% %time%) >>%filename%

rem 结束copy

代码参考https://jingyan.baidu.com/article/d5a880ebcb3ed113f147cc01.html,并根据实际需求更改了部分代码,代码解释参考下图:
在这里插入图片描述

三、创建定时任务

参考文章:windows环境添加定时任务
1.在Windows Server2012中,我们进入服务器管理面板,点击右上角菜单栏中的“工具”,选择其中的“任务计划程序”:
在这里插入图片描述

2.打开了任务计划程序之后,我们点击右侧的“创建基本任务”:
在这里插入图片描述

3.然后,我们需要填写任务的名称,以及描述信息:
在这里插入图片描述

4.点击下一步之后,我们需要设定任务的执行频率,我选择的是“每天”:
在这里插入图片描述

5.再次点击“下一步”,设置任务执行的时间,我选择了夜深人静的2点:
在这里插入图片描述

6.继续“下一步”后,我们选择“启动程序”:
在这里插入图片描述

7.在之后的对话框中,我们需要选择编写的脚本文件:
在这里插入图片描述

8.完成这些步骤后,windows会给我们看一下整个任务的概述信息:
在这里插入图片描述

9.确定无误之后,点击“完成”就可以了。此时我们就会看到在Windows的任务列表里,多了一条新的任务:
在这里插入图片描述

至此,在Windows环境下定时执行脚本的设置就全部完成了。

四、删除过期备份文件

如果备份数据较大时,需要考虑定期清除过期的备份数据。本次实例中需求是每天删除过期2周的数据。删除备份的脚本放在192.168.30.22机器上,具体代码如下:

  • delete_old.bat
@echo off

rem write to log

set filename=deletefile.log

echo -------------------Delete Expired Log Files------------------------- >>%filename%

echo Start >>%filename%

echo (%date% %time%) >>%filename%

echo Delete the expired log files in E:\zentao, Please wait... >>%filename%

forfiles.exe /p "E:\zentao\backup" /m *.* /d -14 /c "cmd /c if @ISDIR==TRUE rd /s/q @path"
forfiles.exe /p "E:\zentao\backup" /m *.sql.php /d -14 /c "cmd /c del @path"

echo End >>%filename%

echo (%date% %time%) >>%filename%

完成批处理代码后,再参考标题三的步骤创建定时任务,设置每天运行该任务。
删除过期数据的代码参考文章:
bat使用forfiles自动批量删除过期文件
forfiles删除文件夹

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值