7zip+vbs+windwos计划任务实现定时远程异地服务器备份

网络整理 - 07-26

  当网站发展到一定程度的时候,大多数站长都应该考虑数据的安全性以及网站的稳定性。

  如果服务器出现硬件故障怎么办?如果数据找不回怎么办?如果服务器所在机房遭到故障,就像前段时间因为备案问题出现大面积封网的情况,很多站长就因为机房问题,数据没法拿出来,没办法重新找空间或者服务器来搭建网站,只能干等着机房的网络恢复正常。到网站发展到一定规模的时候,我们都应该有很多应急方案来处理这些应急的情况。

  对于以上的这些情况,我们应该做到数据的定时备份。对于网站备份,可能大多数人考虑用FTP来实现。但是我个人觉得FTP并不是很安全,像现在很多网站入侵,都是通过serv-u的提权,从而得到服务器的超级管理权限。所以我从来不开FTP,而且一般FTP工具并没法实现自动定时下载。下面我就站长帮手网()怎么用7zip+vbs+任务管理器来实现自动备份数据。大概步骤如下:

  1.通过Sql server建立数据库维护计划,在指定目录生成一个bak文件。该步骤通过Sql server可以实现。每天的凌晨1点执行。备份时间需要花费约20分钟。

  2.到安装好7zip的目录,将7zip.exe拷贝到数据库备份的文件夹下。通过7zip将数据打包成若干个文件。这里打包成多个文件,主要是因为linkhelper的数据库有13个G非常大,后面vbs里面下载用到ado.stream,ado.stream对文件大小有限制。7zip为免费软件。打包命令为:

  rem 设定本地路径

  echo off&setlocal enabledelayedexpansion

  rem 打包前将前一次生成的zip文件删除

  del *.zip.*

  set "7z=7z.exe"

  rem a表示添加 -aoa表示覆盖 -tzip表示生成zip文档 -v800m表示每个分包文件大小为800m

  "7z" a -aoa -tzip linkhelperdata -v800m *.bak

  rem 打包完成后,将*.bak文件删除

  del *.bak

  选择7zip打包,是因为7zip压缩速度非常快。将以上代码保存为“备份数据库后打包.bat”,也放在数据库的备份文件所在文件夹下。

  3.通过windows计划任务新建一个任务,运行“备份数据库后打包.bat ”。运行用户为system用户,密码为空。运行时间为每天的1点40。7zip压缩13G的数据,大概需要半个小时时间,压缩下来总大小为2个多G,会分成三个压缩包。命名分别为:linkhelperdata.zip.001 linkhelperdata.zip.002 linkhelperdata.zip.003

  4.用IIS建立一个站点,指向备份目录。譬如: 然后在IIS属性中的http头中新建一个mime类型,扩展名输入.*,MIME类型输入:application/octet-stream。这样保证异地服务器能直接下载linkhelperdata.zip.001这样的文件。为了以防数据被其他人下载,我们还可以在iis属性中编辑安全属性,指定允许的IP地址。

  通过以上四个步骤,我们就实现了数据库服务器的数据每天定时备份然后打包。下面我们来实现异地服务器的定时下载备份,以下操作都在另外一个服务器上进行。

  5.新建一个vbs文件来实现下载,同时为了方便备份文件的管理。我们将每天下载下来的备份文件放到以当天日期命名的目录。因代码稍微有点长,可以进入 查看详细源代码。将该代码命名为"下载数据.vbs"。

  6.在异地服务器上新建一个windows计划任务,运行"下载数据.vbs"。运行用户为system用户,密码为空。运行时间为每天的3点进行。

  通过以上6个步骤,我们就实现了数据库异地定时备份。对于web的备份,我们也可以同样按照这样的操作来进行。

  如需转载,请保留以上链接,注明转载自站长帮手网()。谢谢。