前几天,由于电脑OFFICE上一个硬盘出了点小问题,结果丢掉了几天的文档,辛苦编辑了几天的工作成果化为泡影,决定给自己的电脑上的文档做个备份,本文所用到的工具都来源于我的电脑上的工具。主要有WINDOWS XP自带的备份工具,其实就是 virtas的ntbackup的一个精简版,呵呵我对ntbackup还是很熟的,所以这个就是我备份的不二选择。
ntbackup的功能在XP上被精简得很是厉害,所以就不指望支持那种不同的文件名啥的,没关系我们可以用批处理命令来实现。
我的基本想法就是使用ntbackup的备份功能生成一个备份包,然后使用一个压缩软件压缩一下,减小备份的体积,我工作的目录大部分是文档,压缩还是很有必要的呵呵。
脚本如下,解释一下:
@echo offC:\WINDOWS\system32\ntbackup.exe backup "@J:\backup\work\mywork.bks" /n "工作备份.bkf" /d "mywork" /v:no /r:no /rs:no /hc:off /m normal /j "mywork" /l:s /f "J:\backup\work\temp.bkf"
#使用ntbakckup命令创建一个临时备份文件集,工作备份.bkf和这段复杂的语句可以用使用XP的备份工具生成不用自己写。
@ping 127.0.0.1 -n 5 -w 1000 > nul
#延时5秒,为的是让磁盘有空将数据完整的写到硬盘
set file="mybak%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%.zip"
#生成一个以当天日期和时间为文件名的文件名mybak20121123-1333.zip
wzzip -a %file% temp.bkf
压缩这个临时文件到zip包里
del temp.bkf
#删除临时备份文件,其实还可以进一步写下去,例如删除3个月前的压缩包等等。
说明一点:缺省的WINZIP 没有命令行的功能,上WINZIP网站可以下一个免费的命令行shell,自己去搜吧呵呵
重点是下面的测试:
我测试了一下,特地挑个低端点的机器测试,在我office用来写文档的机器上P4 3.2G/2G内存测试,2G的bkf压缩包,WINZIP 只需要3分36秒,我的机器上正好有一块AMD4650的显卡,支持OPENCL,打开WINZIP的opencl支持功能,只需要2分55秒左右(另外在我家更强大的CPU/显卡下这个时间可以压缩到2分17秒),知道我们常用的WINRAR压缩这个文件需要多少时间吗?20分xx秒+我完全石化了,我备份只需要2分钟,压缩要用winrar居然要25分钟。从此WINRAR就被我清除出我的电脑了
有图才能有真相,下面我们备份需要的时间:
WINRAR的压缩时间,完全无视了,直接忽略掉了,懒得生成RAR文件了:
WINZIP 没有计算时间的功能,通过文件访问时间和文件修改时间可以计算出文件压缩花的时间,看看下面这个花了多少时间?懒得计算了,时间和上面的WINRAR差远了。
其实我很不喜欢RAR这东西,从windows到unix/linux还要装个解压工具,其实只是国内大家才爱用这个WINRAR,国外的软件发布都是ZIP这种开放的格式,另外一点WINZIP 17.0也支持RAR,从这个测试我们可以完全抛弃RAR这个东西了。