教你如何实现定时远程异地服务器备份

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

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

  对于以上的这些情况,我们应该做到数据的定时备份。对于网站备份,可能大多数人考虑用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文件来实现下载,同时为了方便备份文件的管理。我们将每天下载下来的备份文件放到以当天日期命名的目录。因代码稍微有点长,可以进入http://blog.linkhelper.cn/post/vbs_download_file.html 查看详细源代码。将该代码命名为"下载数据.vbs"。

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

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

  如需转载,请保留以上链接,注明转载自站长帮手网(http://www.linkhelper.cn)。谢谢。

时间: 2024-10-26 01:43:20

教你如何实现定时远程异地服务器备份的相关文章

java如何实现从远程FTP服务器定时更新相关文件

问题描述 背景是这样的:远程ftp服务器会更新某目录下的一些文件,本地服务器需要定时下载这些更新后的文件.我的想法是:由最后修改时间判断该文件是不是最新的(用Spring+Quartz定时去ftp服务器看是否有文件可以更新),然后下载更新的文件,这样可避免重复下载.各位有没有类似的程序例子?谢谢了! ftpClient有一种方法是 ftpClient.getModificationTime(String pathname)可以得到文件的最后修改时间Quartz+Spring实现定时任务配置好了,

Windows Server 2008 RemoteApp(一) 部署远程桌面服务器

RemoteApp中的RD会话主机又称远程桌面服务器,前身是终端服务器,比起终端服务器来说,远程桌面服务器的功能更为强大,在终端服务器时代,我们在服务器端编辑的Office文档要传送回本地客户端,往往会很困难,即使传回了客户端,可是没安装Office也无法浏览和编辑,而在远程桌面服务器中编辑的文档就可以选择保存到终端还是本地,非常方便,由于利用了微软虚拟化技术,RemoteApp可以发布应用程序,就算本地没有安装Office,我们照样可以利用RemoteApp发布出来的Office程序打开文档进

搭建Win2003远程安装服务器

可以利用Windows2003搭建过程安装服务,让具有网络启动功能的电脑能实现远程系统安装. 首先要实现远程安装服务器必须满足下面条件 1 首先需要域的Active Directory 的支持 2.需要DNS的支持 3.需要DHCP服务器的支持 4.安装远程安装服务器组件并且作为远程安装服务器,安装文件,应答文件不能存放于引导分区,系统分区 装上面要求的条件准备好后让我们开始吧. 先在远程安装服务器上运行远程安装服务器安装向导 选择远程安装文件存放目录(该目录不得存放在引导分区和系统分区)

批量修改远程linux服务器密码

#!/bin/bash # BY kerryhu # MAIL:king_819@163.com # BLOG:http://kerry.blog.51cto.com # Please manual operation yum of before Operation..... 一.建立信任关系 192.168.9.203 为管理机 192.168.9.201 192.168.9.202 为远程linux服务器 1.在管理机生成证书. [root@manage ~]# ssh-keygen -t

window系统cmd环境下从远程FTP服务器上下载文件

  我们总会遇到这样或那样的问题,window系统cmd环境下从远程FTP服务器上下载文件是怎么实现的呢? 看看下面的方法,也许对你有帮助: @echo off rem 指定FTP用户名 set ftpUser=FTPUSERYGL rem 指定FTP密码 set ftpPass=FTPUSER rem 指定FTP服务器地址 set ftpIP=10.16.12.101 rem 指定待下载的文件位于FTP服务器的哪个目录 set ftpFolder=/MBX-YGL-IN/UE0620/MBX-

python连接远程ftp服务器并列出目录下文件的方法

  本文实例讲述了python连接远程ftp服务器并列出目录下文件的方法.分享给大家供大家参考.具体如下: 这段python代码用到了pysftp模块,使用sftp协议,对数据进行加密传输   1 2 3 4 5 6 7 8 9 10 import pysftp srv = pysftp.Connection(host="your_FTP_server", username="your_username",password="your_password&q

实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

win7-如何配置远程桌面服务器?

问题描述 如何配置远程桌面服务器? 我有好几台个人电脑,分别在不同的地方,都能上英特网,其中一台A装了很多办公软件,其他的没装.我想把A作为服务器,一直开着,然后其他电脑只要能上网就能通过远程桌面登录这台A电脑,使用那些办公软件.A电脑是WIN7系统,其他几台是XP或者WIN7.请问怎么设置服务器端和客户端?谢谢! 解决方案 在我的电脑上点右键,属性,选择左边的高级属性,选择远程标签,启用远程桌面.选择用户,把当前用户添加进去,如果当前用户没有密码,设置一个密码.然后在控制面板,系统安全里面找到

java ssh linux-java实现ssh登录远程Linux服务器并在该服务器上执行命令的问题

问题描述 java实现ssh登录远程Linux服务器并在该服务器上执行命令的问题 请教高手: 现在要使用java实现ssh登录远程Linux服务器并在该服务器上执行命令,获得执行命令的结果!由于采用的ssh登录方式是使用公钥密钥对的形式,不需要输入密码.所以如果正常的话可以直接执行,能很快得到结果. 但要是不小心出现问题,比如公钥密钥丢失等情况,就会需要输入密码,这时候程序就会一直停留在等待输入密码的那一步,无法继续执行下去. 现在假设发生了后面那种事情(需要输入密码,程序一直停留在等待密码),