虽然windows自带ntbackup很好使,但是好像缺少个压缩功能,或许是我不会吧,而且由于磁盘空间的限制,得定期删除旧文件,懒得使用第三方软件,还是自己编个批处理,加上系统的任务计划。
首先计算机要安装Winrar,我是默认安装的,安装路径就是c:\Program Files\winrar\
开始备份吧。
比如要备份 D:\WEB这个文件夹 到 F:\bak文件夹下面,
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 -agYYYYMMDD-{bak}-NN F:\BAK\ D:\WEB\
就这一条命令就能搞定了,解释下这条命令,a是添加文件到压缩包,-k是锁定压缩包,-s是转换文件为解压缩文件,-m1是压缩的标准,就是快速压缩,标准压缩,好压缩......,-ag是指定生成的文件名,按照我的设置生成的文件名为20091223-bak-02.rar,生成以日期命名的压缩文件,F:\BAK\是生成压缩包存放路径,D:\WEB\是压缩目标。详细的压缩参数可在命令行输入c:\"Program Files"\winrar\rar /?或者进入c:\"Program Files"\winrar\ 目录,里面有个使用帮助.chm的文件。
如果生成的备份文件需要覆盖上次生成的文件,那命令就更简单了。
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 F:\BAK\每日备份.rar D:\WEB\
这条命令我不解释了,参照上面的应该能够理解。
下面是删除旧的备份文件。
由于我硬盘只有100G,每天大概备份文件是10G,所以我是设置为每周星期天删除7天前的备份文件。
命令如下:
set deltime=%date:~0,10%
forfiles.exe /p E:\ /s /m *.rar /d -7 /c "cmd /c del /s @path >>D:\log\%deltime%.txt"
set deltime=%date:~0,10%这句是取一个当前时间的变量,forfiles.exe是系统文件,查找文件的。
/P是定义查找的路径
E:\是定义查找路径E盘下面
/S是定义查找范围包括子目录
/M *.rar 定义查找*.rar的文件
/D 是当前时间
-7 早于或者等于当前时间减7天,也就是7天前
/C 是调用命令行CMD.EXE的命令
"cmd /c del /s @path >>D:\log\%deltime%.txt" 这个是删除查找到的文件,并且把删除文件的文件名导出到
D:\log\%deltime%.txt这个txt文档
%deltime%是系统变量,如果当前时间是20091223,那么生成的文件就是D:\log\20091223.txt,其实导出这个列表只是为了方便查看删除了那些东西
把两个批处理保存为bak.bat 和del.bat,前面是备份的,后面是删除旧的备份文件。然后利用任务计划设置运行的时间,按照我的需要,我设置是
每日01:30运行bak.bat
每周日23:00运行del.bat