对大多数企业来讲,系统和数据的备份既重要,又简单,但又经常做不好,鄙人的观点是,一者要重视备份,二者要有好的备份方案。这里给出我的常用脚本,简洁而好用,供大家参考,若有错误,望指点。QQ:361037838

新建备份目录,如F:\backup

新建备份脚本,如F:\script\backup.bat

在自动任务中创建任务,视情况定期执行此脚本,备份数据文件将会自动创建在脚本所在目录F:\backup,因为各种数据库的备份比较特殊,这里不详说,以SQL Server为例,假设已经由其SQL Server作业自动创建了BAK或TRN备份到F:\sqlback_weekly目录了,脚本内容如下,rem为注释符。


@echo off  
 
rem =================================================  
rem author Zhao Yanan  
rem date 2010/03/10  
rem 注意事项:  
rem 此脚本添加到自动任务中运行一项后,末尾可添加“ >> backup.log 2>&1”(不加引号)  
rem 如果日志每次都较多,以致文件太大而不方便打开,可把>>改为>。  
rem 脚本由超级管理员账户运行正常,请不要使用system用户,否则net use命令执行不会成功。  
rem =================================================  
 
echo ===================backupstart==================  
date /t  
time /t  
 
rem 进入备份目录  
cd ..\backup  
 
rem 处理旧备份  
del *.reg.1  
del *.rar.1  
 
rename *.reg *.reg.1  
rename *.rar *.rar.1  
 
rem 备份注册表  
regedit -e regedit.reg  
 
rem 采用winrar备份  
rem 参数说明:  
rem a,添加压缩文件,必须的参数  
rem -ri0:1,其中0是线程优先级,0为默认,1最低,15最高,1是每压缩一个文件暂停1ms,  
rem 可降低CPU使用率,并可以减少磁盘读写错误的概率,但同时需要考虑备份总时长。  
rem -v2000M,即每个分卷大小是2000*1000*1000Bytes  
rem -sv,分卷采用固实的方式,增加有部分分卷损坏时恢复数据的概率。  
rem -r,包含子文件夹和文件  
rem rar比winrar命令更多,使用方法基本一致。  
rem -m5,采用最大压缩率,-m0,不压缩,默认是-m3  
rem 更多帮助可参考winrar自带的帮助文件  
 
rem 设置本地环境变量  
setlocal  
path="C:\Program Files\WinRAR" 
rar a -y script.rar f:\script\*.bat  
rar a -ri10:3 -y -r IIS_MetaBack.rar %SystemRoot%\System32\inetsrv\MetaBack  
rar a -ri10:3 -y -r serv-u.rar "d:\Program Files\Serv-U"  
rem 下面采用非固实分卷压缩备份大目录,可解决单个大文件FTP上传失败的问题  
rem 因www数据超过10GB,为节省时长,没有采用-ri参数  
rar a -ri10:3 -sv -v2000M -y -r mssql.rar "F:\sqlback_weekly"  
rar a -sv -v2000M -y -r -m2 www.rar e:\web  
rem 结束本地环境变量  
endlocal  
 
rem 通过FTP上传到异地,下面的XXX代表异地FTP的IP,本脚本不采用此方法  
rem ftp -i -s:ftp.ini XXX.XXX.XXX.XXX  
rem 参数说明  
rem 这里ftp的参数,有时候需要加上-n  
 
rem 通过SMB协议和xcopy命令传输到异地,此方法需要本地和异地服务器之间能使用共享  
net use t: /del /y  
net use t: \\XXX.XXX.XXX.XXX\sharedir "share?2010" /user:share  
 
xcopy /r /y /c *.rar t:\  
xcopy /r /y /c BESR\*.sv2i t:\BESR  
xcopy /r /y /c BESR\*.v2i t:\BESR  
rem 因文件太大,下面是打包后直接保存到异地,因采用了分卷,所以异地目录需要有删除权限  
"C:\Program Files\WinRAR\rar" a -sv -v2000M -y -r -m2 t:\ourweb.rar e:\web\ourweb  
 
net use t: /del /y  
 
time /t  
echo ===================backupdone=================  
exit


下面是ftp.ini的内容:

# 带“#”标识的行是使用说明,真实环境中要删除  
# 下面是用户名和密码  
username  
password  
# 采用二进制模式,否则二进制文件传输后是不能用的。  
bin  
put regedit.reg
# 上传多个文件命令  
mput *.rar  
lcd www  
# 事先在FTP上新建www目录  
cd www  
put *.rar  
bye


 因为异地FTP的密码都放在这里了,肯定不安全,我的方法是,异地FTP目录设置为只写,拒绝其它所有权限,异地的备份当然也需要循环,可以在异地服务器上执行定期删除任务。或者改为由异地备份服务器定期获取备份。

考虑到企业有时候需要更久的备份,可以在其它目录里存放永久备份,而不会被自动任务删除。


原文:http://www.zhaoyanan.cn/windows-local-and-remote-automatic-backup-solutions.html