经过不断的修改与实验,备份脚本已在本地环境、服务器环境中成功通过了测试。脚本以批处理命令运行,具体代码如下:
@echo off set "a=%date:~0,4%-%date:~5,2%-%date:~8,2%" //设定时间格式(2010-01-01) mkdir \\192.168.2.245\bacup_3\DBFile\%a% //在备份服务器上创建以时间命名的文件夹 xcopy /d /s /y "*.*" \\192.168.2.245\bacup_3\DBFile\%a%\ //拷贝脚本目录下的所有文件至备份服务器上以时间命名的文件夹中 rar a -df \\192.168.2.245\bacup_3\DBFile\%a%.rar \\192.168.2.245\bacup_3\DBFile\%a% //在备份服务器上将以时间命名的文件夹打包压缩并命名为该时间 rd \\192.168.2.245\bacup_3\DBFile\%a% /s /q //删除该时间文件夹内除RAR外的所有文件
脚本思路:创建文件夹(以当天时间命名)———copy(A服务器到B服务器)———rar打包(B服务器进行)———删掉除rar包之外的所有文件
一、服务器容量现状分析:
由于我司服务器多是双网卡的(211除外),且连接在同一个交换环境内,故可以另设一个内网IP,以内网共享方式备份。
目前,我司国内行销网站服务器情况如下:
外网IP | 内网IP | 硬盘剩余容量 |
119.*.194.3 | 192.168.2.244 | 247G |
119.*.194.5 | 192.168.2.246 | 17G |
202.*.248.214 | 192.168.2.248 | 4G |
202.*.248.215 | 192.168.2.245 | 262G |
202.*.248.216 | 192.168.2.247 | 275G |
202.*.248.213 | 192.168.2.243 | 18G |
202.*.248.211 | 只有一块网卡 | 18G |
注意:以上硬盘剩余容量均指最后一个盘符的剩余空间
考虑到备份服务器容量空间问题,故只将3#、215#、216#三台服务器作为备份服务器,示意图如下:
说明:213#服务器环境特殊,同样的脚本在上面运行,会提示日期格式错误,待解中
二、脚本演示:
下面以5#服务器向3#服务器备份为例,加以阐释:
外网IP | 内网IP |
119.*.194.5 | 192.168.2.246 |
119.*.194.3 | 192.168.2.244 |
1、在3#服务器上,为5#服务器建立共享备份文件夹,如图:
并在备份文件夹内建立相对应的文件夹,如图:
2、在3#服务器上,将脚本文件拷贝至需要备份的文件夹目录下(注意有两个文件),如图:
3、将运行脚本添加至任务计划中,设定时间,每天自动执行
运行界面,如图
4、测试结果,如图:
三、脚本总结
1、脚本优点、缺陷:
优点:
①代码简小精悍,不增额外的第三方应用成本;
②全自动执行,无需人工干预,方便节省
③生成的备份文件包均以日期命名,易于查找、还原
缺点:
①计划任务中的脚本若要按时执行,则需指定的系统用户一直在线,不可注销退出!
②服务器A若重启后,需要再次输入B服务器账号方可再次运行脚本(A向B备份)!
③备份文件夹目录下,总有两个文件,一个批处理文件copy.bat、一个压缩包执行文件rar.exe
(因为压缩打包命令,需要rar.exe的配合才能执行)
④由于备份多半是在凌晨进行,多台服务器同时互备,需要耗费较多的网络资源,所以需要计算好备份时间差,确保6:00前能够备份完毕,保证白天的网站能够访问通畅!
⑤还原过程需手动进行.
2、作业流程:
①三天一大备,一天一小备(个人建议)
由于我们的行销网站主要放在两个大文件夹中,故:
RecruitSites(文件杂多,体积巨大)—————–三天备一次
DBFILE(单一文件,数据重要)———————每天备一次
②每月最后一天,将该月20号以前的数据清理删除
点此下载:关于服务器备份之脚本篇.doc