搜搜吧

查看: 6|回复: 0

[资讯] 完整利用Rsync实现服务器/网站数据增量同步备份[含4P]

[复制链接]
  • TA的每日心情
    奋斗
    前天 13:33
  • 签到天数: 455 天

    [LV.9]以坛为家II

    研究生

    8325

    主题

    8799

    帖子

    2万

    积分

    Rank: 8Rank: 8

    UID
    15343
    威望
    -467
    贡献
    5319
    在线时间
    171 小时
    注册时间
    2015-10-12
    发表于 2018-11-8 14:12:35 | 显示全部楼层 |阅读模式
    推广者专属福利,新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得。

    我们在选择VPS、服务器架设项目之后,所有的项目、网站数据都需要我们自行备份和维护,即便有些服务商有提供管理型服务器,但是数据自行备份和管理才是较为靠谱的。无论是网站,还是其他项目,数据的备份方式有很多种,有服务商提供的快照备份,也可以我们手工和自动利用脚本备份到本地服务器或者远程服务器。

    但是,较多的做法都只能做到定期和定时的备份,如果我们网站项目数据吞吐量比较大,那定时备份并不能完美的解决数据的容灾问题,万一数据丢失或者不完整,我们可能只能恢复到上一个备份点,也会产生数据丢失。如果我们项目比较大且数据重要,定时备份的方式肯定不行的。

    我们可以在定时备份的同时,采用增量同步备份,比如主服务器数据增加一刹那,也会在备份服务器中同步过去,如果我们数据更为重要的,还可以采用多台备份服务器同步。

    c5c9842fbbd7d615b9d68b5c06409437.jpg-wh_651x-s_1314455918.jpg

    第一、准备工作

    1、数据备份

    如果我们没有把握一次性搞定,我们可以准备两台测试环境服务器实现Rsync同步备份功能之后再用到生产环境。如果用到生产环境,我们可以将服务器快照备份,或者将网站、项目数据备份。

    2、服务器准备

    这里我们采用的是Rsync同步增量备份,所以我们需要准备主服务器、以及一台备份服务器。鉴于数据备份后的功能,我们可以直接备份到备份服务器某一个目录,或者将备份服务器安装主服务器环境,将需要备份的网站项目备份到对应的同目录中。

    3、端口开放

    如果我们服务器没有设定iptables防火墙规则,那就不要设置端口。如果我们有设置iptables防火墙,那就需要将873端口添加放行。

    • vi /etc/sysconfig/iptables

    打开iptables规则文档,添加:

    • -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

    de65d4ec13238a1d9d5053efaf27fdec.jpg

    编辑保存之后,然后/etc/init.d/iptables restart重启才能生效。同样的方法,我们需要在主服务器和备份服务器同时设置。

    第二、配置备份服务器

    1、安装rsync

    • yum install rsync xinetd -y

    951f148df7566408c528c0254305322a.jpg

    2、配置文件

    • vi /etc/xinetd.d/rsync

    d58659cd37d5d6e0609d5d60267f6a2e.jpg

    将配置文件disable参数从"yes"换成"no"。

    3、创建配置文件

    • vi /etc/rsyncd.conf

    创建文件,然后将下面脚本添加:

    • log file = /var/log/rsyncd.log
    • pidfile = /var/run/rsyncd.pid
    • lock file = /var/run/rsync.lock
    • secrets file = /etc/rsync.pass
    • motd file = /etc/rsyncd.Motd
    • #创建一个模块名称,后面需要一致
    • [www.laobuluo.com]
    • #备份服务器目录地址
    • path = /home/wwwroot/www.laobuluo.com
    • #对应上面模块名称
    • comment = www.laobuluo.com
    • uid = root
    • gid = root
    • port = 873
    • use chroot = no
    • read only = no
    • list = no
    • max connections = 200
    • timeout = 600
    • #创建一个同步用户名,随便取,反正后面出现的时候要一致
    • auth users = www.laobuluo.com_user
    • #主服务器IP地址
    • hosts allow = xxx.xxx.xxx.xxx

    根据我们网站项目以及服务器实际信息创建文件贴到配置文件中保存退出。

    4、创建密码配对文件

    • vi /etc/rsync.pass

    创建密码配对文件:

    • www.laobuluo.com_user:1234567890passwd

    红色字段需要对应上面的auth users,蓝色部分是我们创建配对的密码。后面主服务器配置的时候也需要用到密码,所以必须一致。

    5、开放权限和启动

    • chmod 600 /etc/rsyncd.conf
    • chmod 600 /etc/rsync.pass
    • service xinetd restart

    第三、配置主服务器

    1、安装rsync

    • yum install rsync xinetd -y

    2、配置文件

    • vi /etc/xinetd.d/rsync

    将配置文件disable参数从"yes"换成"no"。

    3、创建密码配对文件

    • vi /etc/passwd.txt

    将我们上面在备份服务器中蓝色的密码丢进来,必须一致。

    4、授权和启动

    • chmod 600 /etc/passwd.txt
    • service xinetd restart

    第四、配置主服务器

    这一步我们继续配置主服务器,需要安装和配置inotify-tools来实现同步增量备份。

    1、安装环境包

    • yum install make gcc gcc-c++ -y

    2、下载和安装inotify-tools

    • cd /usr/local/src
    • wget https://download.laobuluo.com/tools/inotify-tools-3.14.tar.gz
    • tar -zxvf inotify-tools-3.14.tar.gz
    • cd inotify-tools-3.14
    • ./configure --prefix=/usr/local/inotify
    • make
    • make install

    3、配置环境变量

    • echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh
    • source /etc/profile.d/inotify.sh
    • echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
    • ln -s /usr/local/inotify/include /usr/include/inotify

    4、配置参数

    • vi /etc/sysctl.conf

    添加到脚本最后:

    • fs.inotify.max_queued_events=99999999
    • fs.inotify.max_user_watches=99999999
    • fs.inotify.max_user_instances=65535

    5、创建触发脚本

    • vi /usr/local/inotify/rsync.sh

    创建脚本:

    • #!/bin/sh
    • #同步主服务器网站目录
    • srcdir=/home/wwwroot/www.laobuluo.com
    • #目录名称
    • dstdir=www.laobuluo.com
    • excludedir=/usr/local/inotify/exclude.list
    • #对应同步名称要一致
    • rsyncuser=www.laobuluo.com_user
    • rsynCPAssdir=/etc/passwd.txt
    • #备份服务器IP地址
    • dstip="xxx.xxx.xxx.xxx"
    • for ip in $dstip
    • do
    • rsync -avH --port=873 --progress --delete --exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir
    • done
    • /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $srcdir | while read file
    • do
    • for ip in $dstip
    • do
    • rsync -avH --port=873 --progress --delete --exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir
    • echo " ${file} was rsynced" >> /tmp/rsync.log 2>&1
    • done
    • done

    修改自行的文件和目录,然后保存退出。

    6、创建排除目录列表

    • vi /usr/local/inotify/exclude.list

    创建一个排除目录,这里可以添加不同步的目录,一行一个目录。如果暂时没有可以留空,以后需要用到在添加。

    7、授权和设置开机启动

    • chmod +x /usr/local/inotify/rsync.sh

    这里我们授权。

    • vi /etc/rc.d/rc.local

    最后一行添加:

    • sh /usr/local/inotify/rsync.sh &

    第五、检测以及生效小结

    1、检查生效

    设置完毕之后,我们可以通过手工检查

    • sh /usr/local/inotify/rsync.sh &

    在主服务器执行脚本,如果看到有目录在进度,说明完美,然后去备份服务器中可以看到已经备份到的文件目录。

    2、自动生效

    重启主服务器,然后就会自动生效。如果不放心我们可以在主服务器对应目录丢一个文件看看备份服务器是否有增加。

    这样,我们就通过rsync实现主服务器与备份服务器之间的同步增量备份,来解决大数据吞吐的解决容灾问题。如果我们数据不大,可以采用定时和手工备份,毕竟这样一套设置下来确实比较费时间。


    [发帖际遇]: 虚拟主机评测 被钱袋砸中进医院,看病花了 4 金钱. 幸运榜 / 衰神榜
    楼主热帖排行榜
    搜搜吧社区温馨提示:
    搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
    1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容!
    2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生!
    3、如若您的作品或内容在搜搜吧被侵权,请及时联系我们并提供能证明版权所有的物品,我们将及时进行处理,给您造成不便,敬请谅解!
    4、搜搜吧删帖,投诉,举报,侵权,账号解封唯一指定快速受理频道,请直接发送邮件到 kefu-sosoba@qq.com 一个工作日内核实并邮件通知立即删除
    soso搜搜吧社区是聚合百度搜索,搜狗搜索,360搜索,新闻,教育,站长,广告,娱乐,影视,微信,网盘,营销,手机,汽车,游戏,论坛综合为一体的大型门户社区www.sosoba.org
    Powered by www.sosoba.org X3.4© 2013-2019 搜搜吧社区 小黑屋|手机版|地图|关于我们|新闻资讯|soso搜搜吧社区官网
    搜搜吧社区官网创建于2013年07月23日,本站内容均为会员发表,并不代搜搜吧社区立场,请遵守当地相关法律,客服邮箱: kefu-sosoba@qq.com
    本站所有的内容均来自互联网以及第三方作者自由发布、本站soso搜搜吧不承担任何的法律责任、若有侵权请来信告知,我们在收到举报后的一个工作日内立即删除
    推荐使用:chrmoe谷歌浏览器,搜狗浏览器,QQ浏览器,360极速浏览器,360安全浏览器,猎豹浏览器,火狐浏览器,世界之窗,百度浏览器,Safari浏览器,ios,Android

    GMT+8, 2018-11-22 02:15 , Processed in 1.140625 second(s), 31 queries , Gzip On.

    快速回复 返回顶部 返回列表