完整利用Rsync实现服务器/网站数据增量同步备份

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

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

我们可以在定时备份的同时,采用增量同步备份,比如主服务器数据增加一刹那,也会在备份服务器中同步过去,如果我们数据更为重要的,还可以采用多台备份服务器同步。在这篇文章中,老部落(微信公众号:imweber)重新整理一份较为完整且确实可行的Rsync同步增量备份方式。

第一、准备工作

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

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

第二、配置备份服务器

1、安装rsync

yum install rsync xinetd -y

2、配置文件

vi /etc/xinetd.d/rsync

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

3、创建配置文件

vi /etc/rsyncd.conf

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

log file = /var/log/rsyncd.logpidfile = /var/run/rsyncd.pidlock file

= /var/run/rsync.locksecrets file = /etc/rsync.passmotd file =

/etc/rsyncd.Motd#创建一个模块名称,后面需要一致[www.laobuluo.com]#备份服务器目录地址path =

/home/wwwroot/www.laobuluo.com#对应上面模块名称comment = www.laobuluo.comuid =

rootgid = rootport = 873use chroot = noread only = nolist = nomax

connections = 200timeout = 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.confchmod 600 /etc/rsync.passservice 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.txtservice xinetd restart

第四、配置主服务器

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

1、安装环境包

yum install make gcc gcc-c++ -y

2、下载和安装inotify-tools

cd /usr/local/srcwget

https://download.laobuluo.com/tools/inotify-tools-3.14.tar.gztar -zxvf

inotify-tools-3.14.tar.gzcd inotify-tools-3.14./configure

--prefix=/usr/local/inotifymakemake install

3、配置环境变量

echo "PATH=/usr/local/inotify/bin:$PATH"

>>/etc/profile.d/inotify.shsource /etc/profile.d/inotify.shecho

"/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.confln -s

/usr/local/inotify/include /usr/include/inotify

4、配置参数

vi /etc/sysctl.conf

添加到脚本最后:

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

5、创建触发脚本

vi /usr/local/inotify/rsync.sh

创建脚本:

#!/bin/sh#同步主服务器网站目录srcdir=/home/wwwroot/www.laobuluo.com#目录名称dstdir=www.laobuluo.comexcludedir=/usr/local/inotify/exclude.list#对应同步名称要一致rsyncuser=www.laobuluo.com_userrsyncpassdir=/etc/passwd.txt#备份服务器IP地址dstip="xxx.xxx.xxx.xxx"for

ip in $dstipdorsync -avH --port=873 --progress --delete

--exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir

--password-file=$rsyncpassdirdone/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

filedofor ip in $dstipdorsync -avH --port=873 --progress --delete

--exclude-from=$excludedir $srcdir $rsyncuser@$ip::$dstdir

--password-file=$rsyncpassdirecho " ${file} was rsynced" >>

/tmp/rsync.log 2>&1donedone

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

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

本文原创来自:https://www.laobuluo.com/1070.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容