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

news/2024/5/17 11:26:16/文章来源:https://blog.csdn.net/weixin_30287169/article/details/97212259

我们在选择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

转载于:https://www.cnblogs.com/itbulu/p/8616171.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_773323.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC与单元测试实践之健身网站(一)-项目概述

2019独角兽企业重金招聘Python工程师标准>>> 前不久刚刚通过租房网站的开发学习了MVC,并随后学习了单元测试相关的基础,现在开始健身网站的开发,该项目将结合MVC与单元测试,在开发实践过程中,趁热打铁&…

Java爬虫_资源网站爬取实战

对 http://bestcbooks.com/ 这个网站的书籍进行爬取 (爬取资源分享在结尾) 下面是通过一个URL获得其对应网页源码的方法 传入一个 url 返回其源码 (获得源码后,对源码进行解析,获得页面中其他的书籍地址和当前页面的书籍的百度网盘的链接,因为这个网站…

Nginx配置SSL证书部署HTTPS网站

一、什么是 SSL 证书,什么是 HTTPSSSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全…

【好书试读】速度与激情:以网站性能提升用户体验

开始试读:https://yqfile.alicdn.com/1d4578a32e3f5120cd35a1e53e2000b5.pdf天猫购买链接:速度与激情:以网站性能提升用户体验 Web设计师在权衡外观设计与网站性能时总是要作出艰难的选择。良好的内容、布局、图片和交互对于吸引用户来说至关…

网站用户身份识别俩大招之django实现cookie

导航: 原理介绍 代码实现 过程分析 追踪Cookie 原理介绍 众所周知,http协议是无状态的协议,简单理解是用户的前一步操作和后一步操作之间没有关系,互相不知道,不干扰。而在很多场景下,浏览网页时&#xff0…

Java网站开发必看书籍

转发:https://blog.csdn.net/tianya846/article/details/50683248 1:《java并发编程从入门到精通》 推荐理由: 从入门讲到精通的,网络安全,网络并发的好书。《Java并发编程从入门到精通》作者结合自己10多年Java并发编…

记在VMware虚拟机中对网站进行性能压力测试的经历

由于本次测试,仅仅是对静态网站首页进行的测试,所以没有涉及到MySQL数据库的性能监测 服务器基本配置 webbench测试工具 Linux上一款优秀的web性能压力测试工具。webbench最多可以模拟3万个并发连接去测试网站的负载能力。 下面开始测试 第一次并发测试 …

基于keepalived实现多种模式的高可用集群网站架构

一、 实现主从服务器高可用技术。 大概网络拓扑图: 前提准备条件: 准备四台机器,一台为keepalived的master,一台为keepalived的backup,一台为rs1,一台为rs2,同时都关闭防火墙和selinux。 ①安装…

基于django的视频点播网站开发-step8-后台登录功能

从本讲起,我们会介绍后台管理系统的开发,后台管理,主要是对数据库中的数据进行增、删、改、查的操作,满足网站管理员对网站的管理与维护的需求。 其实,django自带的也有一个后台管理系统(/admin&#xff09…

阿里P9架构师简述从单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspri…

SEO新手网站优化工作操作流程汇总

SEO是一个系统的过程,如果你对SEO概念没有很了解,是很难操作的。我们列出有关SEO网站优化操作流程。 以下是网站优化SEO新手操作流程汇总 一、网站诊断 1、网站历史:域名注册时间、域名到期时间、域名注册机构、域名注册人 2、服务器数据&…

个人网站如何使用支付宝收款实现

想给个人网站增加一个支付, 找到https://neue.v2ex.com/t/350564, 按照里面大家讨论的,还真的可以了。 1.开通功能 https://neue.v2ex.com/t/326701 有个商家二维码 图中二维码是服务商的员工码,作为推广的服务商肯定是会有返利…

php 易宝支付,网站接入易宝支付遇上的问题

因为工作的需要,就接触了易宝支付。本以为根据易宝支付提供的demo跟文档就能快速的完成接入工作,可是这一过程并不顺利,耽误了不少时间,所以我就把遇上的问题给记录下来,也许能帮到更多朋友。1)文档选择存在两份文档&a…

获取http://www.89ip.cn/index_1.html网站的ip和端口的组合

2019独角兽企业重金招聘Python工程师标准>>> import requests import re html requests.get("http://www.89ip.cn/index_1.html") okhtml.text ok.replace( ,) ok.replace(\t,) print(ok) pattern2 re.compile((\d.\d.\d.\d).*?(\d),re.S) p1 re.find…

美国视频网站Hulu将开发VR喜剧和新闻内容

Hulu联手RYOT工作室,在VR应用中增加原创喜剧和新闻内容。 美国视频网站Hulu正在和赫芬顿邮报旗下的RYOT工作室合作,准备打造一档VR喜剧节目和新闻内容。 RYOT工作室是在今年四月份被美国在线收购的,成为赫芬顿邮报(属于美国在线&…

Node.js爬取科技新闻网站cnBeta(附前端及服务端源码)

前言 一直很喜欢看科技新闻,多年来一直混迹于cnBeta,以前西贝的评论区是匿名的,所以评论区非常活跃,各种喷子和段子,不过也确实很欢乐,可以说那是西贝人气最旺的时候。然而自从去年网信办出台了《互联网跟帖…

服务器安装centos7找不到u盘,安装centos7时找不到u盘怎么办_网站服务器运行维护,centos7,U盘...

虚拟机安装centos7时提示找不到硬盘_网站服务器运行维护虚拟机安装centos7时提示找不到硬盘的解决方法是:1、关闭虚拟机,移除硬盘;2、添加新硬盘,硬盘类型选择IDE;3、设置虚拟硬盘的大小,并创建虚拟硬盘文件…

大型网站架构演变和知识体系 (转)

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

AWWWB 网站克隆器 更新到1.01 修正错误

测试克隆网站: http://www.simdoo.com/default.aspx 分析UTF-8等编码的网页时会出现此问题,现已修正。 新版下载地址:http://www.uushare.com/user/icesee/file/2249659

广告***盗杀毒厂商数字签名 视频网站流量惨遭劫持

金山毒霸安全实验室本周截获一广告***,该病毒运行后会在用户电脑释放被修改的flash插件。当用户访问优酷youku、toudu土豆、qiyi奇艺、56我 乐、QQ农场等视频网站时,病毒会强行插入视频广告。并且,据金山毒霸安全实验室分析,病毒释…