场景描述:近期需要实现将 Windows 下 TG 级别的文档,远程增量备份至分布式存储服务器,于是有了下面的设计:
1、采用rsync,经过测试发现文件比较非常耗时,难以快速实现增量备份;
2、采用Windows下的小工具FastCopy配合DOS脚本来实现快速增量备份;
首先将备份服务器的备份目录自动挂载到本地Z盘(我的备份服务器用samba共享出来的),然后调用FastCopy实现增量备份的目的,具体脚本如下:
-----------------------------------------------------------------------------------------
@echo off
goto begin
远程备份数据到分布式存储指定路径
Miaocbin 10:35 2015/6/19 星期五
:Begin
if exist Z:\ ( goto start ) else ( net use z: \\192.168.2.12\backup )
:start
echo 同步 D:\vssdata 到 Z:\vssdata
Fastcopy\fastcopy.exe /cmd=sync /auto_close /open_window "D:\vssdata\*.*" /to="Z:\vssdata"
echo 同步 D:\svnRepositories 到 Z:\svnRepositories
Fastcopy\fastcopy.exe /cmd=sync /auto_close /open_window "D:\svnRepositories\*.*" /to="Z:\svnRepositories"
:end
net use z: /d /y
exit
------------------------------------------------------------------------------------------
思路一:首先,判断下Z盘是否存在,如果已经存在,则将其卸载,避免盘符被占用,即:
if exist Z:\ ( net use z: /d /y ) else ( net use z: \\192.168.2.12\backup )
------------------------------------------------------------------------------------------
思路二:判断盘符是否存在(网络驱动器是否已经映射好了),没有映射,则通过命令自动映射,已经映射好了,则调用FastCopy进行增量备份;
if exist Z:\ ( goto start ) else ( net use z: \\192.168.2.12\backup )
以上思路都可以,任君选择。
------------------------------------------------------------------------------------------
备注:上述需要我们首先建立ipc$连接,否则是挂不上远程备份磁盘的。
下面的方式可以实现自动传输帐号密码,自动挂在远程共享盘到本地:
------------------------------------------------------------------------------------------
C:\>net use z: \\192.168.2.217\backup "Password123" /user:Administrator
------------------------------------------------------------------------------------------
将备份服务器192.168.2.12上的backup共享盘,挂载到本地。账户为:Administrator,密码为Password123