以前使用VPS的时候,包括本博客一类的个人网站,一般都用SH脚本利用FTP备份(详情见我之前的一篇博客),这种方法的优点是简单快速。但是最近在给公司的网站做备份时,却遇到了不小的问题,公司的网站数据量较大,有30多个G,如果用FTP备份的话,足足花了我一个上午,更严重的是满足3天备份数据的话,磁盘空间暴涨;如果设置成自动备份的话,每天硬盘要压缩30G数据,然后再传输到备份服务器,我担心不到半月硬盘就得挂掉!
以前做数据库管理的时候,在遇到备份数据较大的时候,可以进行增量备份,原理虽然一样,但是没有接触过文件增量备份,还好我们有GOOGLE,参考了网上常用的一些网站增量备份的办法,发现一个开源的软件rsync;
它的特性如下:
1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
公司的网站服务器为linux,备份服务器为windows,并不需要考虑实时备份,做到每天备份即可,具体的方法如下:
1.首先在linux服务器上面安装rsync,
#wget http://rsync.samba.org/ftp/rsync/rsync-3.0.8.tar.gz#tar zxvf rsync-3.0.8.tar.gz#cd rsync-3.0.8#./configure#make#make install
2.在vps上创建rsyncd的配置文件/etc/rsyncd.conf,内容如下:
uid = root # 备份以什么身份进行,用户IDgid = root # 备份以什么身份进行,组ID#注意这个用户ID和组ID,如果要方便的话,可以设置成root,这样rsync几乎就可#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备#份的目录和文件即可。#use chroot = nomax connections = 0 # 最大连接数没有限制pid file = /var/log/rsync/rsyncd.pidlock file = /var/log/rsync/rsync.locklog file = /var/log/rsync/rsyncd.log[web] # 指定认证的备份模块名path = /home/ # 需要备份的目录comment = BACKUP wwwroot # 注释ignore errors # 忽略一些无关的IO错误read only = false # 设置为只读list = false # 不允许列文件#hosts allow = 210.51.0.80 #允许连接服务器的主机IP地址#hosts deny = 0.0.0.0/0.0.0.0 #禁止连接服务器的主机IP地址#auth users = wwek # 认证的用户名,如果没有这行,则表明是匿名(建议使用匿名,配合指定运行单一IP地址备份即可)secrets file = /etc/rsyncd.secrets # 认证文件名,用来存放密码
3.由于指定了密码文件,该文件只能是root用户可读写的,注意,出于安全目的,这个文件的属性必需是只有属主可读,否则rsync将拒绝运行。我们可以设置它的属性为600:
# chmod 600 /etc/rsyncd.secrets# mkdir /var/log/rsync
4.服务器上启动rsyncd服务:
# /usr/local/bin/rsync –daemon
5.windows安装配置cwrsync 客户端 cwrsync也就是windows上的rsync了。
然后执行备份命令
rsync -vzrtopg –progress –delete [服务器IP]::web [/cygdrive/f/backup]
其中web是服务器配置文件中的模块名,/cygdrive/f/backup是指备份到本地F:/backup
新闻热点
疑难解答
图片精选